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

相關文章
相關標籤/搜索