RSA Encryption in Jmeter for Response Value



我目前正在一个应用程序中工作,其中RSA加密被用于加密敏感数据。是否有一种方法可以在Jmeter中使用RSA加密,以便在之前的响应中显示此值加密?下面是一个例子,

实际值,"emailAddressInfo":("PerfTestA@gmail.com | PerftestB@gmail.com").

我希望上面的值在Jmeter中像下面这样加密。

"emailAddressInfo"(as15114677sfh0hfu4scr460hdhsb24sjj324j689hsakw42cjjftks4wefe4sd)">

字符组合表示加密后的值。

对我来说,它看起来不像rsa加密的消息,所以我建议仔细检查算法。

无论如何,为了对字符串进行rsa加密,您需要使用JSR223中的Cipher类使用Groovy语言

示例代码:

import javax.crypto.Cipher
import java.security.KeyFactory
import java.security.spec.X509EncodedKeySpec
//replace with your own RSA public key
def publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsvX9P58JFxEs5C+L+H7Wn' +
'duFSWL5EPzber7C2m94klrSV6q0bAcrYQnGwFOlveThsY200hRbadKaKjHD7qIKHn' +
'DEe0IY2PSRht33Jye52AwhkRw+M3xuQH/7R8LydnsNFk2KHpr5X2SBv42e37LjkEn' +
'slKSaMRgJW+v0KZ30piY8QsdFRKKaVg5/Ajt1YToM1YVsdHXJ3vmXFMtypLdxwUDn' +
'dIaLEX6pFUkU75KSuEQ/E2luT61Q3ta9kOWm9+0zvi7OMcbdekJT7mzcVnh93R1cn' +
'13ZhQCLbh9A7si8jKFtaMWevjayrvqQABEcTN9N4Hoxcyg6l4neZtRDk75OMYcqmn' +
'DQIDAQAB'

def x509PublicKey = new X509EncodedKeySpec(publicKey.decodeBase64())
def keyFactory = KeyFactory.getInstance('RSA')
def key = keyFactory.generatePublic(x509PublicKey)
def string2Encrypt = '("PerfTestA@gmail.com | PerftestB@gmail.com").'
def encryptCipher = Cipher.getInstance('RSA')
encryptCipher.init(Cipher.ENCRYPT_MODE, key)
def secretMessage = string2Encrypt.getBytes('UTF-8')
def encryptedMessage = encryptCipher.doFinal(secretMessage)
def encodedMessage = encryptedMessage.encodeBase64().toString()
vars.put('encodedMessage', encodedMessage)

一旦完成,您将能够在需要时将加密值引用为${encodedMessage}

相关内容

最新更新