zoukankan      html  css  js  c++  java
  • Jmeter参数的AES加密使用

    在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时候,怎样发送加密的参数呢,下面以AES加密为例,来示范一下如何在jmeter中对参数进行加密。

    一、AES加密算法调试(java+myeclipse)

    首先要准备一个AES算法类,并调试算法是否可用,我是在网上找的代码,调试可用之后导出的jar包,详解一下步骤

    1、在myeclipse中新建一个java工程,我命名为了jmeterTest,可以看到jmeterTest下有src这个文件夹。然后在src文件夹下新建一个包,我命名为了AES。此时的包AES是空的,然后要在AES包中创建一个java类,我命名为了AESUtil

    2、java类已经创建好了,现在要在类中添加代码了,添加下面这段AES加密算法之后,程序会提示错误,因为有个包需要引入,包放在网盘里链接: https://pan.baidu.com/s/1OxYyK1nI0PhpCofgYXXWrQ 提取码: s4aw ,选择工程build path将包导入到工程中就可以了。根据main函数中的调用来测试一下你的程序加密是不是好用。

    package AES;
     
    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import javax.crypto.SecretKey;
    import javax.crypto.spec.SecretKeySpec;
    import org.apache.commons.codec.binary.Base64;
     
    /**
     * @version V1.0
     * @desc AES 加密工具类
     */
    public class AESUtil {
        private static String key = "hgfjhgfjsf";//此处的密匙,可以找开发同事提供,我瞎编了一个,要根据实际项目来
        private static final String KEY_ALGORITHM = "AES";
        private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默认的加密算法
        /**
         * AES 加密操作
         *
         * @param content 待加密内容
         * @param password 加密密码
         * @return 返回Base64转码后的加密数据
         */
        public static String encrypt(String src) {
            // 判断密钥是否为空
            if (key == null) {
                System.out.print("密钥不能为空  软件测试学习交流 273462828");
                return null;
            }
            try {
                SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("utf-8"), "AES");
                Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); // 算法/模式/补码方式 
                cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
                byte[] encrypted = cipher.doFinal(src.getBytes("utf-8"));
                return new Base64().encodeToString(encrypted);//base64
    //            return binary(encrypted, 16); //十六进制
            } catch (Exception ex) {
                Logger.getLogger(AESUtil.class.getName()).log(Level.SEVERE, null, ex);
            }
     
            return null;
        }
     
        public static void main(String[] args) {
    //用来测试加密后的字符串,我测试的是“1234”
            String s = "1234";
            System.out.println("s:" + s);
            String s1 = AESUtil.encrypt(s);
            System.out.println("s1:" + s1);        
        }
     
    }
    
    

    3、程序调试完毕之后,需要导出jar包,选中AES包,右击Exoprt,选择Runnable JAR File导出即可,至此我要在jmeter中使用的jar包就准备好了。

    二、在jmeter中导入jar包,在需要进行参数加密的请求中添加BeanShell PreProcessor。

    如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣可以273462828,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    三、jmeter引用,查看结果数中查看一下自己的用户名和密码参数是否加密了呢?这样就完成了对jmeter参数进行加密的过程。

  • 相关阅读:
    How to change hostname on SLE
    How to install starDIct on suse OS?
    python logging usage
    How to reset password for unknow root
    How to use wget ?
    How to only capute sub-matched character by grep
    How to inspect who is caller of func and who is the class of instance
    How to use groovy script on jenkins
    Vim ide for shell development
    linux高性能服务器编程 (二) --IP协议详解
  • 原文地址:https://www.cnblogs.com/nanaheidebk/p/10305337.html
Copyright © 2011-2022 走看看