MD5算法原理浅谈

原理

 请求方对请求数据按一定的规则排序,加上appkey码一起通过MD5加密生成签名,然后把请求数据和签名发给服务方,服务方拿到数据后,去掉appid和无用的数据,通过appid找到请求方的appkey,然后按同样的规则处理数据,并加上appkey通过MD5加密也生成签名,然后和请求方生成的签名去对比,如果值一样,签名验证通过。

需要的东西

服务商一般会给你一个appid,appkey;同时这两个参数服务商也会保存,这两个形成了你的唯一标识。
appid通过网络传输,而appkey是不在网络上进行传输的,只在生成签名时使用,所以安全性还是比较高的。

MD5生成签名的流程

1. 除去加密数组中的空值和签名参数
2. 对数组排序
3. 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
4. 加上appkey值,对形成的数据进行MD5加密,生成签名

public static String getMD5(String s) {
        String result = "";
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            result = byteArrayToHexString(messageDigest.digest(s.getBytes()));
} catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return result; }
 
posted @ 2019-07-29 09:11  黑嘉  阅读(780)  评论(0编辑  收藏  举报