加密测试-RAS加密

方式1:使用前置处理器(JSR223或beanshell)加密

import java.security.KeyFactory  
import java.security.PublicKey  
import java.security.spec.X509EncodedKeySpec  
import javax.crypto.Cipher  
import java.util.Base64  
  
// 假设publicKey变量包含了Base64编码的公钥字符串  
String base64PublicKey = vars.get("publickey"); // 从JMeter变量中获取公钥  
log.info("-----获取到的公钥为------: " + base64PublicKey);
  
// 将Base64编码的公钥字符串解码为字节数组  
byte[] encodedPublicKeyBytes = Base64.getDecoder().decode(base64PublicKey);  
  
// 使用X.509格式将公钥字节数组转换为KeySpec  
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encodedPublicKeyBytes);  
  
// 获取RSA密钥工厂实例  
KeyFactory kf = KeyFactory.getInstance("RSA");  
  
// 生成PublicKey对象  
PublicKey pubKey = kf.generatePublic(publicKeySpec);  
  
// 初始化Cipher对象,设置为加密模式,并使用"RSA/ECB/PKCS1Padding"作为转换模式(根据需要调整)  
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");  
cipher.init(Cipher.ENCRYPT_MODE, pubKey);  
  
// 要加密的字符串  
String dataToEncrypt = "123456";  
  
// 加密字符串(需要转换为字节数组)  
// 注意:对于长字符串,你可能需要使用OAEPWithSHA-256AndMGF1Padding或分段加密  
byte[] encryptedBytes = cipher.doFinal(dataToEncrypt.getBytes("UTF-8"));  
  
// 将加密后的字节数组转换为Base64字符串  
String encryptedData = Base64.getEncoder().encodeToString(encryptedBytes);  
  
// 将加密后的数据存储在JMeter变量中以便后续使用  
vars.put("encryptedValue", encryptedData);  
  
// 输出加密后的数据到JMeter日志中(可选)  
log.info("------加密后的密文为-----: " + encryptedData);

 

 方法2:通过后端开发加密接口获取RSA加密后的结果,详看:https://www.cnblogs.com/sheepboy/p/17511998.html

posted @ 2024-05-10 14:21  羊孩  阅读(6)  评论(0编辑  收藏  举报
返回顶端