RAS加密算法介绍:
RSA(全称:Rivest-Shamir-Adleman)是一种非对称加密算法,在加密/解密过程中使用不同的密钥,即公钥和私钥。公钥和私钥是成对生成的,一般公钥会存放在客户端,客户端可以使用公钥对内容进行加密,服务器端存放私钥,当服务器端收到加密的内容后,可以通过私钥进行解密。。公钥可以公开,但为了安全私钥需要保密。
RSA加签是什么?加签是私钥放在客户端,使用私有对数据进行加签,服务器拿到数据后用公钥进行验签。
在线生成RAS 公钥和私钥地址:RSA公私钥密钥对生成、加解密、签名、验签,也可以通过代码生成公钥和私有。
Jmeter中通过JSR223 Sampler加密/解密RAS内容,如下:

完整代码:
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.io.ByteArrayOutputStream;
import javax.crypto.Cipher;
import java.security.*;
import java.util.*;
import java.util.Map;
import java.util.HashMap;
public class RSAUtils {
//加密算法RSA
public static final String KEY_ALGORITHM = "RSA";
//签名算法
public static final String SIGNATURE_ALGORITHM = "SHA256withRSA";
//获取公钥的key
private static final String PUBLIC_KEY_STR = "PublicKeyStr";
//获取私钥的key
private static final String PRIVATE_KEY_STR = "PrivateKeyStr";
//RSA最大加密明文大小(字节数)
private static final int MAX_ENCRYPT_BLOCK = 117;
//RSA最大解密密文大小(字节数)
private static final int MAX_DECRYPT_BLOCK = 128;
/*
* @description: 生成公钥私钥
* @date: 2024/1/17 14:47
* @param
* @return java.util.Map<java.lang.String,java.lang.String>
*/
public static Map initKeyPair() throws Exception {
//public static Map<String, String> initKeyPair() throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance(KEY_ALGORITHM);
kpg.initialize(1024);
KeyPair keyPair = kpg.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
String publicKeyStr = encryptBASE64(publicKey.getEncoded());
String privateKeyStr = encryptBASE64(privateKey.getEncoded());
Map keyMap = new HashMap();
keyMap.put(PUBLIC_KEY_STR, publicKeyStr);
keyMap.put(PRIVATE_KEY_STR, privateKe


9329

被折叠的 条评论
为什么被折叠?



