feat:【framework 框架】增加 ApiEncryptTest 单测
parent
a66fe7cc10
commit
59429be4df
|
@ -0,0 +1,86 @@
|
||||||
|
package cn.iocoder.yudao.framework.encrypt;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.crypto.SecureUtil;
|
||||||
|
import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm;
|
||||||
|
import cn.hutool.crypto.asymmetric.KeyType;
|
||||||
|
import cn.hutool.crypto.asymmetric.RSA;
|
||||||
|
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 各种 API 加解密的测试类:不是单测,而是方便大家生成密钥、加密、解密等操作。
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("ConstantValue")
|
||||||
|
public class ApiEncryptTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGenerateAsymmetric() {
|
||||||
|
String asymmetricAlgorithm = AsymmetricAlgorithm.RSA.getValue();
|
||||||
|
// String asymmetricAlgorithm = "SM2";
|
||||||
|
// String asymmetricAlgorithm = SM4.ALGORITHM_NAME;
|
||||||
|
// String asymmetricAlgorithm = SymmetricAlgorithm.AES.getValue();
|
||||||
|
String requestClientKey = null;
|
||||||
|
String requestServerKey = null;
|
||||||
|
String responseClientKey = null;
|
||||||
|
String responseServerKey = null;
|
||||||
|
if (Objects.equals(asymmetricAlgorithm, AsymmetricAlgorithm.RSA.getValue())) {
|
||||||
|
// 请求的密钥
|
||||||
|
RSA requestRsa = SecureUtil.rsa();
|
||||||
|
requestClientKey = requestRsa.getPublicKeyBase64();
|
||||||
|
requestServerKey = requestRsa.getPrivateKeyBase64();
|
||||||
|
// 响应的密钥
|
||||||
|
RSA responseRsa = new RSA();
|
||||||
|
responseClientKey = responseRsa.getPrivateKeyBase64();
|
||||||
|
responseServerKey = responseRsa.getPublicKeyBase64();
|
||||||
|
} else if (Objects.equals(asymmetricAlgorithm, SymmetricAlgorithm.AES.getValue())) {
|
||||||
|
// AES 密钥可选 32、24、16 位
|
||||||
|
// 请求的密钥(前后端密钥一致)
|
||||||
|
requestClientKey = RandomUtil.randomNumbers(32);
|
||||||
|
requestServerKey = requestClientKey;
|
||||||
|
// 响应的密钥(前后端密钥一致)
|
||||||
|
responseClientKey = RandomUtil.randomNumbers(32);
|
||||||
|
responseServerKey = responseClientKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打印结果
|
||||||
|
System.out.println("requestClientKey = " + requestClientKey);
|
||||||
|
System.out.println("requestServerKey = " + requestServerKey);
|
||||||
|
System.out.println("responseClientKey = " + responseClientKey);
|
||||||
|
System.out.println("responseServerKey = " + responseServerKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEncrypt_aes() {
|
||||||
|
String key = "52549111389893486934626385991395";
|
||||||
|
String body = "{\n" +
|
||||||
|
" \"username\": \"admin\",\n" +
|
||||||
|
" \"password\": \"admin123\",\n" +
|
||||||
|
" \"uuid\": \"3acd87a09a4f48fb9118333780e94883\",\n" +
|
||||||
|
" \"code\": \"1024\"\n" +
|
||||||
|
"}";
|
||||||
|
String encrypt = SecureUtil.aes(StrUtil.utf8Bytes(key))
|
||||||
|
.encryptBase64(body);
|
||||||
|
System.out.println("encrypt = " + encrypt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEncrypt_rsa() {
|
||||||
|
String key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCls2rIpnGdYnLFgz1XU13GbNQ5DloyPpvW00FPGjqn5Z6JpK+kDtVlnkhwR87iRrE5Vf2WNqRX6vzbLSgveIQY8e8oqGCb829myjf1MuI+ZzN4ghf/7tEYhZJGPI9AbfxFqBUzm+kR3/HByAI22GLT96WM26QiMK8n3tIP/yiLswIDAQAB";
|
||||||
|
String body = "{\n" +
|
||||||
|
" \"username\": \"admin\",\n" +
|
||||||
|
" \"password\": \"admin123\",\n" +
|
||||||
|
" \"uuid\": \"3acd87a09a4f48fb9118333780e94883\",\n" +
|
||||||
|
" \"code\": \"1024\"\n" +
|
||||||
|
"}";
|
||||||
|
String encrypt = SecureUtil.rsa(null, key)
|
||||||
|
.encryptBase64(body, KeyType.PublicKey);
|
||||||
|
System.out.println("encrypt = " + encrypt);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue