最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jmeter接口測試之使用rsa算法加密解密的代碼

 更新時間:2022年03月21日 10:21:59   作者:大蟲測試  
這篇文章主要介紹了jmeter接口測試-使用rsa加密解密算法,部分接口采用了rsa加密算法,我們的jmeter 也是可以直接拿來調(diào)用的,不需要開發(fā)配合去掉加密代碼,需要的朋友可以參考下

本篇介紹jmeter 使用rsa算法進行加密參數(shù)

如果測試過程中,部分接口采用了rsa加密算法,我們的jmeter 也是可以直接拿來調(diào)用的,不需要開發(fā)配合去掉加密代碼!

直接上代碼

import org.apache.commons.codec.binary.Base64;
import java.io.ByteArrayOutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.Map;
import javax.crypto.Cipher;
String RSA_PUB_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNPFO1OaKJbLOH7hVzjj8s+k+spSgG7D2imIpR1ukC3xqgEUYP/vYIiZHXnK04Ddk0ELYee5xDbFfTHSWOK6d2lqK0ydWtLFHCdKpBehM/YKa72zf5KaSJGGgag8EQw4o5ZBS/Ia9w2OxYZ1S94OeRXaA+Z4cy8rBui0hTW9Z0pwIDAQAB";
String KEY_ALGORITHM = "RSA";
String SIGNATURE_ALGORITHM = "MD5withRSA";
int MAX_ENCRYPT_BLOCK = 117;
int MAX_DECRYPT_BLOCK = 128;

public static byte[] decryptByPublicKey(byte[] encryptedData, String publicKey)
            throws Exception {
        byte[] keyBytes = Base64.decodeBase64(publicKey);
        X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
        Key publicK = keyFactory.generatePublic(x509KeySpec);
        Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
        cipher.init(Cipher.DECRYPT_MODE, publicK);
        int inputLen = encryptedData.length;
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int offSet = 0;
        byte[] cache;
        int i = 0;
        // 對數(shù)據(jù)分段解密
        while (inputLen - offSet > 0) {
            if (inputLen - offSet > MAX_DECRYPT_BLOCK) {
                cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK);
            } else {
                cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet);
            }
            out.write(cache, 0, cache.length);
            i++;
            offSet = i * MAX_DECRYPT_BLOCK;
        }
        byte[] decryptedData = out.toByteArray();
        out.close();
        return decryptedData;
    }
    public static byte[] encryptByPublicKey(byte[] data, String publicKey)
            throws Exception {
        byte[] keyBytes = Base64.decodeBase64(publicKey);
        X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
        Key publicK = keyFactory.generatePublic(x509KeySpec);
        // 對數(shù)據(jù)加密
        Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
        cipher.init(Cipher.ENCRYPT_MODE, publicK);
        int inputLen = data.length;
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int offSet = 0;
        byte[] cache;
        int i = 0;
        // 對數(shù)據(jù)分段加密
        while (inputLen - offSet > 0) {
            if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {
                cache = cipher.doFinal(data, offSet, MAX_ENCRYPT_BLOCK);
            } else {
                cache = cipher.doFinal(data, offSet, inputLen - offSet);
            }
            out.write(cache, 0, cache.length);
            i++;
            offSet = i * MAX_ENCRYPT_BLOCK;
        }
        byte[] encryptedData = out.toByteArray();
        out.close();
        return encryptedData;
    }
    String str = "idNum=633335199606143151&name=藺四十&phone=17610010005";
String result ="";
try {
    result = Base64.encodeBase64String(encryptByPublicKey(str.getBytes(), RSA_PUB_KEY));
    System.out.println(result);
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
print(result);
vars.put("sign",result);
return result;

看運行效果

上述代碼,直接把加密結(jié)果放入變量sign中,在其他地方,如果需要調(diào)用加密結(jié)果,只需要 使用代碼:${sign}即可

import org.apache.commons.codec.binary.Base64;

引入了jmeter包中的類,如果本代碼在jmeter環(huán)境運行,不需要加載第三方j(luò)ar包
如果在eclipse 或者其他環(huán)境中運行,需要其他base64的類替換,請注意!

到此這篇關(guān)于jmeter接口測試-使用rsa加密解密算法的文章就介紹到這了,更多相關(guān)jmeter rsa加密解密算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你了解Java選擇排序的原理與實現(xiàn)

    一文帶你了解Java選擇排序的原理與實現(xiàn)

    選擇排序:(Selection sort)是一種簡單直觀的排序算法,也是一種不穩(wěn)定的排序方法。本文主要為大家介紹一下選擇排序的原理與實現(xiàn),希望對大家有所幫助
    2022-11-11
  • WebService的相關(guān)概念

    WebService的相關(guān)概念

    這篇文章主要介紹了WebService的相關(guān)概念的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • mybatis一對多方式實現(xiàn)批量插入

    mybatis一對多方式實現(xiàn)批量插入

    這篇文章主要介紹了mybatis一對多方式實現(xiàn)批量插入,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java中JSON處理工具類使用詳解

    Java中JSON處理工具類使用詳解

    這篇文章主要為大家詳細介紹了Java中JSON處理工具類的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 淺談Spring中HandlerMapping的使用

    淺談Spring中HandlerMapping的使用

    這篇文章主要介紹了淺談Spring中HandlerMapping的使用,Spingmvc中的HandlerMapping負責(zé)解析請求URL,對應(yīng)到Handler進行處理,這里的Handler一般為Controller里的一個方法method,也可以為servlet或者Controller等,需要的朋友可以參考下
    2023-08-08
  • SpringBoot3整合郵件服務(wù)實現(xiàn)郵件發(fā)送功能

    SpringBoot3整合郵件服務(wù)實現(xiàn)郵件發(fā)送功能

    本文介紹了spring boot整合email服務(wù),實現(xiàn)發(fā)送驗證碼,郵件(普通文本郵件、靜態(tài)資源郵件、附件郵件),文中通過代碼示例介紹的非常詳細,堅持看完相信對你有幫助,需要的朋友可以參考下
    2024-05-05
  • Java創(chuàng)建多線程異步執(zhí)行實現(xiàn)代碼解析

    Java創(chuàng)建多線程異步執(zhí)行實現(xiàn)代碼解析

    這篇文章主要介紹了Java創(chuàng)建多線程異步執(zhí)行實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java的字節(jié)緩沖流與字符緩沖流解析

    Java的字節(jié)緩沖流與字符緩沖流解析

    這篇文章主要介紹了Java的字節(jié)緩沖流與字符緩沖流解析,Java 緩沖流是Java I/O庫中的一種流,用于提高讀寫數(shù)據(jù)的效率,它通過在內(nèi)存中創(chuàng)建緩沖區(qū)來減少與底層設(shè)備的直接交互次數(shù),從而減少了I/O操作的開銷,需要的朋友可以參考下
    2023-11-11
  • MyBatis字段名和屬性名不一致的解決方法

    MyBatis字段名和屬性名不一致的解決方法

    本文主要介紹了MyBatis字段名和屬性名不一致的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • spring boot的攔截器簡單使用示例代碼

    spring boot的攔截器簡單使用示例代碼

    這篇文章主要介紹了spring boot的攔截器簡單使用實例代碼,需要的的朋友參考下吧
    2017-04-04

最新評論

镇平县| 托里县| 北海市| 上蔡县| 南开区| 泰州市| 阆中市| 鸡东县| 凤冈县| 武强县| 汉阴县| 修文县| 阜阳市| 红原县| 拉萨市| 达拉特旗| 台中市| 监利县| 崇阳县| 辽宁省| 基隆市| 大埔区| 木兰县| 上栗县| 沽源县| 海阳市| 明星| 定陶县| 黑水县| 新丰县| 色达县| 祁阳县| 乡城县| 松阳县| 吴江市| 宝应县| 若羌县| 喀喇| 西藏| 吉木乃县| 孝义市|