zoukankan      html  css  js  c++  java
  • jmeter接口测试-使用aes加密算法

    好久没写文章了,一直在忙公司项目的事情!今天抽空写篇关于jmeter加密的教程吧!

    随着互联网的发展,越来越多的系统开始提供接口调用!

    我们进行接口测试的时候,大多数接口或多或少的都使用了各种加密验证,保证接口的安全调用!所以如何使用jmeter来应对各种加密接口 是一项必要技能

    接下来大虫会对市面上常用的加密算法 (Md5 sign 签名、des加密算法、aes加密算法、rsa加密算法 等等)进行一一解析!

    aes   对称加密算法,通过解密密文,可以得到被加密的数据!

    先上代码吧!

    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    import org.apache.commons.codec.binary.Base64;
    public static String Encrypt(String sSrc, String sKey) throws Exception {
            if (sKey == null) {
                return null;
            }
            // 判断Key是否为16位
            if (sKey.length() != 16) {
                return null;
            }
            byte[] raw = sKey.getBytes("utf-8");
            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");// "算法/模式/补码方式"
            cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
            byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
            return Base64.encodeBase64String(encrypted);// 此处使用BASE64做转码功能,同时能起到2次加密的作用。
        }
    
    String cSrc = "{"appId":"P201707280","applyNo":"20170802101737582178","idNo":"jmeter 高级技术群:572445436","userName":"jmeter 高级技术群:572445436","phone":"jmeter 高级技术群:572445436","zhima":700,"applyTime":"2017-08-02 10:17:37","amount":9800}";
             //密码,长度要是8的倍数
            String cKey = "d4e9acc6a0ff505b";
            // 需要加密的字串
            System.out.println(cSrc);
            // 加密
            String enString = Encrypt(cSrc, cKey);    
            vars.put("enString",enString);
            return enString;

    本代码是运行在jmeter的 beanshell中的,你也可以封装成类,编译成jar包,供jmeter调用,都是可以的

    以上代码再运用aes加密之后,又对结果进行了base64 编码,这样就便于查看和传输了,aes的直接加密结果是字节集,强行转换成字符串的话,肯定是一串乱码~!

     

  • 相关阅读:
    JSON 序列化类 南京酷得软件
    哈哈哈哈哈哈 找回记忆
    Presto
    (转)在Total Commander下使用SVN
    在ubuntu12.04,64位中安装lnmp一键包mysql的问题
    阿里云服务器上搭建php环境+redis
    在ubuntu12.04,64位中安装nginx+php+redis+mysql
    Redis篇:单线程I/O模型
    工具篇:apachehttpClient 和 jdk11HttpClient的使用
    技能篇:关于缓存数据的一致性探讨
  • 原文地址:https://www.cnblogs.com/artoftest/p/7277996.html
Copyright © 2011-2022 走看看