JS MD5 返回二进制格式

今天靠大佬的帮助,成功的解决了一个弄了很久的问题。原由就是咱们要对一个手机号进行加密。php

  加密方式是把一个字符串进行MD5加密以后,获得原始 16 字符二进制格式而后把获得的这个字符做为AES的key对手机号加密,最后获得这结果。json

最奇怪的就是获得二进制格式,我之前作过md5加密,获得的都是字符串,无论是32位的,仍是16位,可是此次竟然要二进制。最开始去百度,发现网上没有,最后仍是问的咱们大佬,须要引入一个crypto-js.min.js的文件,而后这里面能获得二进制格式的字符。下面我把这个文件放在网盘上,(连接:https://pan.baidu.com/s/1XQACI7FlAap2oclg8TLlnw 提取码:hejh 还有就是咱们的代码放在下面,为了私密。我把一些代码注释了加密

1 var jsonStr = "123456";
2 var key = CryptoJS.MD5(jsonStr);
3 var dataStr = mobile;
4 var encryptedData = CryptoJS.AES.encrypt(dataStr, key, {
5       mode: CryptoJS.mode.ECB,
6       padding: CryptoJS.pad.Pkcs7
7 });
8 var word = encryptedData.ciphertext;
9 var encryptedBase64Str = CryptoJS.enc.Base64.stringify(word);

其中jsonStr为须要加密的字符串,第二行获得的key就是二进制字符,你们能够自行的打印查看,而后从第四行开始,是进行AES加密。最后进行一个base64加密,而后这个encryptedBase64Str为最后加密的获得的东西。spa

一样的后台获得我传过去的这个东西,也是须要对jsonStr进行md5 二进制加密,获得AES解密的密钥,而后进行AES解密。获得原始的数据值,应该就是123456就对了。code

这里忍不住吐槽一下,人家php能直接获取到这个二进制字符blog

1 <?php
2 $str = "Shanghai";
3 echo "字符串:".$str."<br>";
4 echo "TRUE - 原始 16 字符二进制格式:".md5($str, TRUE)."<br>";
5 echo "FALSE - 32 字符十六进制格式:".md5($str)."<br>";
6 ?>

羡慕。ip

相关文章
相关标签/搜索