目录
加密解密简介
- 加密:明文转换成密文的过程
- 解密:密文还原成明文的过程
- 常见加密算法
解密方案
接口解密实战
import org.apache.commons.codec.binary.Base64;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
public class TestBase64 {
@Test
void testEncodeAndDecode(){
// 加密一串数据:hogwarts
// 获取字节数组
byte[] arr1 = "hogwarts".getBytes(StandardCharsets.UTF_8);
// 执行加密
String encodedMsg = Base64.encodeBase64String(arr1);
// 解密一串数据:aG9nd2FydHM=
// 执行解密
byte[] arr2 = Base64.decodeBase64("aG9nd2FydHM=");
// 生成字符串
String decodeMsg = new String(arr2, StandardCharsets.UTF_8);
}
}
接口解密实战
解密后响应断言
import org.apache.commons.codec.binary.Base64;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import static io.restassured.RestAssured.given;
public class TestDecode {
@Test
void testDecode(){
// 加密一串数据
byte[] data = "hogwarts".getBytes(StandardCharsets.UTF_8);
String secretMsg = Base64.encodeBase64String(data);
// 发起请求,并获取响应信息
LinkedHashMap<String, String> responseForm =
given()
.formParam("msg", secretMsg) // 提交表单数据
.when()
.post("https://httpbin.ceshiren.com/post") // 发起POST请求
.then()
.log().all() // 打印完整响应信息
.extract().path("form"); // 提取form信息
// 提取加密字段
String encodedMsg = responseForm.get("msg");
// 解密操作
String decodedMsg = new String(Base64.decodeBase64(encodedMsg));
// 响应断言
Assertions.assertEquals("hogwarts", decodedMsg);
}
}
接口解密实战
import org.apache.commons.codec.binary.Base64;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import static io.restassured.RestAssured.given;
public class TestDecode {
@Test
void testDecode(){
// 加密一串数据
byte[] data = "hogwarts".getBytes(StandardCharsets.UTF_8);
String secretMsg = Base64.encodeBase64String(data);
// 发起请求,并获取响应信息
LinkedHashMap<String, String> responseForm =
given()
.formParam("msg", secretMsg) // 提交表单数据
.when()
.post("https://httpbin.ceshiren.com/post") // 发起POST请求
.then()
.log().all() // 打印完整响应信息
.extract().path("form"); // 提取form信息
// 提取加密字段
String encodedMsg = responseForm.get("msg");
// 解密操作
String decodedMsg = new String(Base64.decodeBase64(encodedMsg));
// 响应断言
Assertions.assertEquals("hogwarts", decodedMsg);
}
}