美文网首页
Jmeter实现base64加密传参

Jmeter实现base64加密传参

作者: 涅米 | 来源:发表于2022-09-15 14:25 被阅读0次

    在Jmeter进行接口测试中,会存在接口传参时候在字段base64加密部分参数,可能为username也可能password,此处以password为例。
    1、用户自定义加密参数变量


    image.png

    2、新增beanshell 取样器
    加密代码:
    import org.apache.commons.net.util.Base64;
    //String source = vars.get("name");

    String source = "${password}"; //输入password原始值

    byte[] encodedBytes = Base64.encodeBase64(source.getBytes("UTF-8"));

    String encoded = new String(encodedBytes);

    log.info("加密后的值------->>"+encoded);

    vars.put("password-b64", encoded); //"password-b64"替换"password",引用使用"${password-b64}"

    image.png

    3、新增调试取样器


    image.png

    4、实际接口调用中实现


    image.png
    5、调用接口中取样器得到结果
    image.png

    6、实际执行接口调用


    image.png

    7、以上仅实现加密的调用,若需要解密,代码参考:
    import java.io.*;
    import org.apache.commons.codec;
    import sun.misc.BASE64Decoder;

    log.info("------------开始加密-------------------");

    String encryption = new sun.misc.BASE64Encoder().encode("hc_staging".getBytes());

    vars.put("encryption", encryption);

    log.info("加密后的值------->>"+encryption);
    log.info("------------加密结束-------------------");

    log.info("------------开始解密-------------------");
    org.apache.commons.codec.binary.Base64 base64=new org.apache.commons.codec.binary.Base64();
    String decrypt=new String(base64.decode("aGNfc3RhZ2luZw=="));

    vars.put("decrypt",decrypt);

    log.info("解密后的值------->>"+decrypt);
    log.info("------------解密结束-------------------");

    相关文章

      网友评论

          本文标题:Jmeter实现base64加密传参

          本文链接:https://www.haomeiwen.com/subject/zrgrortx.html