js原生使用CryptoJS
时间: 2023-11-20 12:51:08 浏览: 190
CryptoJS 是一个纯 JavaScript 实现的加密算法库,支持常见的加密算法,如 AES、DES、TripleDES、Rabbit、RC4、MD5、SHA-1、SHA-256 等。使用 CryptoJS 可以方便地进行数据加密和解密操作。
下面是使用 CryptoJS 进行 AES 加密和解密的示例代码:
```javascript
// AES 加密
var key = CryptoJS.enc.Utf8.parse("1234567890123456"); // 密钥
var iv = CryptoJS.enc.Utf8.parse("1234567890123456"); // 偏移量
var encrypted = CryptoJS.AES.encrypt("Hello, world!", key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
console.log(encrypted.toString()); // 输出加密后的字符串
// AES 解密
var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
console.log(decrypted.toString(CryptoJS.enc.Utf8)); // 输出解密后的字符串
```
相关问题
H5中使用CryptoJS加密
H5中使用CryptoJS进行加密通常涉及到JavaScript库CryptoJS,它是一个功能丰富的JavaScript密码学工具包,支持多种常见的加密算法如AES(高级加密标准)、MD5、SHA等。以下是一个简单的步骤说明如何使用CryptoJS进行加密:
1. **引入库**:首先需要在HTML文件中引入CryptoJS库,你可以从其官方网站下载压缩文件并放在项目中,或者通过CDN链接直接引用。
```html
<script src="path/to/crypto-js.min.js"></script>
```
2. **选择加密模式**:选择你需要的加密算法,比如AES-256-CBC(一种块加密模式)。
```javascript
var key = CryptoJS.lib.WordArray.random(16); // 生成一个随机密钥,16字节对应256位
var iv = CryptoJS.lib.WordArray.random(16); // 初始化向量,也是16字节
// 对明文进行加密
var encrypted = CryptoJS.AES.encrypt("your plaintext", key, { mode: CryptoJS.mode.CBC, iv: iv });
```
3. **处理加密结果**:加密后的数据通常是Base64编码的字符串,因为JavaScript原生不支持非ASCII字符序列的存储。可以将其转换成字符串:
```javascript
var encryptedStr = encrypted.toString(CryptoJS.enc.Base64);
```
4. **解密**:同样,当需要解密时,使用相同的密钥和初始化向量:
```javascript
var decrypted = CryptoJS.AES.decrypt(encryptedStr, key, { mode: CryptoJS.mode.CBC, iv: iv });
var decryptedText = decrypted.toString(CryptoJS.enc.Utf8); // 转换回原始文本
```
在Javascript中实现HMAC-SHA256,使用原生的JS
要在JavaScript中实现HMAC-SHA256,可以使用Node.js内置的crypto模块。以下是一个示例代码:
```javascript
const crypto = require('crypto');
function hmacSha256(key, message) {
const hmac = crypto.createHmac('sha256', key);
hmac.update(message);
return hmac.digest('hex');
}
const key = 'my-secret-key';
const message = 'hello world';
const hash = hmacSha256(key, message);
console.log(hash);
```
在此示例中,我们首先导入了Node.js中的crypto模块。然后,我们定义了一个名为hmacSha256的函数,该函数接受一个密钥和一个消息,并返回HMAC-SHA256哈希值。在该函数中,我们使用crypto.createHmac方法创建了一个HMAC对象,并将其初始化为使用SHA256算法和给定密钥。然后,我们使用update方法将消息传递给HMAC对象,并使用digest方法获取哈希值。最后,我们使用示例密钥和消息调用hmacSha256函数,并将结果打印到控制台中。
请注意,此示例仅适用于Node.js环境。如果您需要在浏览器中运行此代码,您需要使用CryptoJS或其他JavaScript加密库。
阅读全文