java md5加密 jar包_练习MD5加密jar包编写
简介
参数签名可以保证开发的者的信息被冒用后,信息不会被泄露和受损。原因在于接入者和提供者都会对每一次的接口访问进行签名和验证。
签名sign的方式是目前比较常用的方式。
第1步:接入者把需求访问的接口的所有必要的参数信息(注意是所有参数),除去sign本身,以及值是空的参数,按参数名字母顺序排序。拼接成字符串
第2步: 然后把排序后的参数按参数1值1参数2值2…参数n值n(这里的参数和值必须是传输参数的原始值,不能是经过处理的,的方式拼接成一个字符串。
第3步: 把分配给接入方的验证密钥key(或者是提供者提供的一个SECRET_KEY,这个SECRET_KEY只有接入者和提供者知道)拼接在第2步得到的字符串前面。
第4步:对加入密匙key的字符串进行加密或是摘要(用MD5或是SHA1摘要的比较多)
第5步:对MD5的摘要结果转成大写然后写成字符串,传给参数sign
举例:
假设传输的数据是
http://www.xxx.com/interface.aspx?sign=sign_value&p2=v2&p1=v1&method=cancel&p3=&pn=vn
(实际情况最好是通过post方式发送),
其中sign参数对应的sign_value就是签名的值。
第一步,拼接字符串,首先去除sign参数本身,然后去除值是空的参数p3,
剩下p2=v2&p1=v1&method=cancel&pn=vn,
然后按参数名字符升序排序,method=cancel&p1=v1&p2=v2&pn=vn.
第二步,然后做参数名和值的拼接,最后得到methodcancelp1v1p2v2pnvn
第三步,在上面拼接得到的字符串前加上验证密钥key,我们假设是abc,
得到新的字符串abcmethodcancelp1v1p2v2pnvn
第四步,然后将这个字符串进行md5计算,假设得到的是abcdef,
然后转为大写,得到ABCDEF这个值即为sign签名值。
注意,计算md5之前请确保接口与接入方的字符串编码一致,
如统一使用utf-8编码或者GBK编码,如果编码方式不一致则计算出来的签名会校验失败。
服务器用密匙key对参数进行同样的MD5摘要算法,比对sign值
MD5摘要
MD5即Message-Digest
Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等
jmeter的MD5摘要算法
我的Jmeter3.2版本已经没有了_MD5这个函数了。
所以要用MD5对参数进行摘要,我们需要自己导入MD5摘要算法的jar包
用Eclipse编写一个java的MD5摘要算法的jar包,以下是操作步骤图
MD5摘要算法在java中的编码
Jackmd5.java文件编码如下
package
JACK.MD5;
import
java.security.MessageDigest;
import
java.security.NoSuchAlgorithmException;
public class JACKMD5 {
//创建一个类LMFMD5
public String MD5(String sourceStr) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
// 生成一个MD5加密计算摘要
md.update(sourceStr.getBytes());
// 使用指定的byte数组更新摘要
byte b[] = md.digest();
// 把密文转换成十六进制的字符串形式
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
result = buf.toString();
System.out.println("MD5(" + sourceStr + ",32) =
" + result);
//
System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8,
24));
// 注释的是md5的16位取值
} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}
}
Test.java文件编码如下:
package
JACK.MD5;
import
JACK.MD5.JACKMD5;
public class test {
public static void main (String[] args) {
String res = new JACKMD5().MD5("jack的MD5加密jar包");
System.out.println(res);
}
}
接下来是导出jar包操作:
1、点击export …
下面是导出的jar包,把MD5摘要算法的jar包放入jmeter的lib\ext目录里面里面
Jmeter的BeanShell Sampler 和Debug sampler创建
import JACK.MD5.JACKMD5;
String res = new JACKMD5().MD5("jack测试md5的jar包");
System.out.printIn(res);
vars.put("md5",res.toString())
java md5加密 jar包_练习MD5加密jar包编写相关推荐
- cmd jar 无效_为什么我的JAR文件以CMD执行,而不是双击执行?
因此,我一直在编写一个简单的3D GUI应用程序,旨在让用户只需双击JAR文件即可使用.在将其放入JAR文件之前,它可以正常工作,并且在命令提示符下运行时(在jar文件的目录中键入" jav ...
- fiddler everywhere手机抓包_基于移动端抓包使用Fiddler模拟弱网测试
随着移动互联网的发展,移动端测试工作也提上日程,那移动互联网测试与web测试有什么不一样?首先它们架构不一样,再者基于的场景不一样,PC端网络基本固定宽带,而移动互联的网络测试一般分为:2G.3G.4 ...
- tcpdump抓两个网卡的包_如何抓取网络包?两个方法告诉你
本文转载自[微信公众号:手机电脑双黑客,ID:heikestudio],经微信公众号授权转载,如需转载与原文作者联系 世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 显形" ...
- java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
一.前言 基于dorado.core.jar开源包中的com.bstek.dorado.util.CloneUtils克隆工具类,对对象进行通过java.lang.reflect.Method映射克隆 ...
- mave本地导入mysql的jar包_将本地的jar包引入到maven项目中
首先进入到maven的目录下,并且将要引入的jar包也放在这个目录下 然后执行命令 mvn install:install-file -Dfile=checkDataAdapter-api.jar - ...
- smtp java 抓包_[Wireshark]_003_电子邮件抓包分析
电子邮件是我们的生活工作中经常使用的一种服务,用来联系世界各地的朋友,客户.下面我们就用Wireshark对电子邮件进行抓包. 准备工作: 邮件客户端一款(Outlook,Foxmail,KooMai ...
- java.util.list源码_关于fest-util源码包Collections集合工具类过滤、判空、格式化及复制克隆处理...
一.前言 关于fest-util源码包org.fest.util.Collections集合处理类,实现对数组转换List序列集合.集合duplicatesFrom克隆复制.集合判空isEmpty.并 ...
- 我的世界java版怎么加整合包_我的世界整合包入门攻略 整合包怎么使用
我的世界整合包入门攻略,由齐齐乐小白兔带来.有玩家问我的世界整合包怎么使用,不清楚的看下我的世界整合包入门攻略吧. java7和java8基本无区别. 对于整合包 1.7.2及以下的forge(包含部 ...
- mysqlcp30下载最新jar包_三星S20FE刷机包(系统升级刷机最新官方固件包下载)
三星GalaxyS20FE搭载高通骁龙865处理器,支持无线快充,最新系统版本已经更新,新版本改善了触摸功能的稳定性,应用了最新的安卓安全补丁,提高了设备的安全性,三星Galaxy S20 FE(5G ...
最新文章
- 翻译BonoboService官网的安装教程
- python各进制、字节串间的转换
- swiper.js 多图片页面的懒加载lazyLoading
- the enigma x64_【一期】什么是x64、x86,它们有什么区别?
- C~K要找女朋友了!!!_JAVA
- 一句代码实现 HTML5 语音搜索
- 在理解通用近似定理之前,你可能都不会理解神经网络
- git 查看修改用户名
- 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具
- python骰子游戏分析_python 用python写一个骰子游戏
- Matlab打开文件替换变量,读取matlab某个路径下的“.mat”文件,改变文件中的内容,并以原名字,变量保存...
- 4-算法 校门外的树
- 站点的安全防范都是后端的职责?非也,Web前端安全同样不可忽视
- 计算机网络——报文格式
- android 微信跨境支付,微信跨境支付已在超过49个境外国家和地区合规接入
- 计算机dns ip在哪设置,电脑dns在哪里设置具体方法
- OpenCV手掌识别
- 生态 | 南大通用GBase 8a与Suma完成兼容性互认证
- 【考试记录】Apsara Clouder基础技能认证:实现调用API接口
- Edge Blocker(微软edge浏览器禁用工具)绿色单文件版V1.7 | 怎么关闭edge浏览器 | 能将win10浏览器edge换成ie浏览器