js md5加密 解密
时间: 2023-07-17 19:03:13 浏览: 171
在 JavaScript 中,可以使用第三方库或者内置函数来进行 MD5 加密和解密。
1. 使用第三方库:可以使用 CryptoJS 库来进行 MD5 加密和解密。首先,需要引入 CryptoJS 库:
```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
```
然后,可以使用以下代码进行 MD5 加密和解密:
```javascript
// 加密
var encrypted = CryptoJS.MD5("message").toString();
// 解密(MD5 是不可逆过程,无法解密)
```
2. 使用内置函数:JavaScript 本身没有提供内置的 MD5 加密和解密函数,但可以使用 `window.crypto.subtle.digest()` 方法进行加密,但无法解密。
下面是使用 `window.crypto.subtle.digest()` 方法进行 MD5 加密的示例:
```javascript
// 将字符串转换为 Uint8Array
function strToUint8Array(str) {
var encoder = new TextEncoder();
return encoder.encode(str);
}
// 将 ArrayBuffer 转换为十六进制字符串
function arrayBufferToHexString(buffer) {
var byteArray = new Uint8Array(buffer);
var hexString = "";
for (var i = 0; i < byteArray.length; i++) {
var hex = byteArray[i].toString(16);
hex = hex.length === 1 ? "0" + hex : hex;
hexString += hex;
}
return hexString;
}
// MD5 加密
async function md5Encrypt(message) {
var encoder = new TextEncoder();
var data = encoder.encode(message);
var hashBuffer = await crypto.subtle.digest("MD5", data);
var hashArray = arrayBufferToHexString(hashBuffer);
return hashArray;
}
// 使用示例
md5Encrypt("message").then(function(hash) {
console.log(hash);
});
```
需要注意的是,MD5 是一种不可逆的哈希算法,无法进行解密。加密后的结果只能用于比对,无法还原原始数据。
阅读全文