JS使用Crypto-JS实现MD5、Base64等加密算法

JS使用Crypto-JS实现MD5、Base64等加密算法

一、需求分析

前台对接后台接口时需要,生成一个MD5加密的签名参数,验签成功才能调用接口。

JS使用Crypto-JS实现MD5、Base64等加密算法

在线MD5生成 https://www.cmd5.com/hash.aspx?s=123456

123456

md5: e10adc3949ba59abbe56e057f20f883e
md5(md5($pass)): 14e1b600b1fd579f47433b88e8d85291
md5(md5(md5($pass))): c56d0e9a7ccec67b4ea131655038d604
md5(unicode): ce0bfd15059b68d67688884d7a3d3e8c
md5(base64): 4QrcOUm6Wau+VuBX8g+IPg==

通过在线测试可知,接口需要的格式为md5(base64)。这个的意思是先md5加密,再base64加密。

接口文档写的只用md5显然是不对的 FUCK~~

二、Crypto-JS使用方法

Crypto-JS官方网址(需要*) https://code.google.com/p/crypto-js

Github地址 https://github.com/brix/crypto-js

BootCDN地址(推荐使用) https://www.bootcdn.cn/crypto-js

  • 代码示例
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<!--相当于引入了所有的加密方式,也可以只引用自己需要的-->
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.js"></script>
<!--
单独引用之前需要引入core.js
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/core.js"></script>
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/md5.js"></script>
-->
</head>
<body>
<script type="text/javascript">
var str = "123456";
//MD5
var hash = CryptoJS.MD5(str);
console.log('md5加密前'+str+'	 md5加密后'+hash);
//Base64
var base64String = CryptoJS.enc.Base64.stringify(hash);
console.log('Base64加密前'+hash+'	 Base64加密后'+base64String);

/*
md5加密前123456	 md5加密后e10adc3949ba59abbe56e057f20f883e
crypto.html:34 Base64加密前e10adc3949ba59abbe56e057f20f883e	 Base64加密后4QrcOUm6Wau+VuBX8g+IPg==
*/
</script>
</body>
</html>

参考文档:

https://blog.zhengxianjun.com/2015/05/javascript-crypto-js/

https://www.cnblogs.com/lz2017/p/8046816.htm