crypto-browserify aes
时间: 2025-06-23 11:28:23 浏览: 14
### 关于 `crypto-browserify` 使用 AES 加密
在浏览器环境中使用 `crypto-browserify` 实现 AES 加密可以确保跨平台的一致性和兼容性。下面展示如何安装并利用该库完成基本的 AES 加密操作。
#### 安装依赖包
首先需要通过 npm 或 yarn 来安装 `crypto-browserify` 及其必要的 peer dependencies:
```bash
npm install crypto-browserify stream-browserify assert buffer process util inherits events
```
#### 导入模块与初始化环境变量
为了能够在 Node.js 和 Web 浏览器之间共享相同的 API 接口,在项目入口文件处添加如下配置来模拟 Node.js 的全局对象:
```javascript
// polyfill for node core modules in browser environment
import { Buffer } from 'buffer';
global.Buffer = Buffer;
import * as Stream from 'stream';
global.Stream = Stream;
```
#### 创建 AES 加密函数
定义一个名为 `aesEncrypt` 的辅助函数来进行字符串到加密后的 Base64 编码字符串转换:
```javascript
const crypto = require('crypto-browserify');
function aesEncrypt(plainText, secretKey) {
const cipher = crypto.createCipheriv(
'aes-256-cbc', // algorithm
new TextEncoder().encode(secretKey), // key
crypto.randomBytes(16) // iv (Initialization Vector)
);
let encryptedData = cipher.update(plainText, 'utf8', 'base64');
encryptedData += cipher.final('base64');
return `${encryptedData}`;
}
```
此代码片段展示了创建 Cipher 对象的过程以及执行实际的数据加密工作[^1]。
#### 调用示例
最后给出完整的调用例子,包括设置密码和待处理的消息体:
```javascript
(async function() {
try {
const message = "This is a secret message!";
const password = "supersecretpassword";
console.log(`Original Message: ${message}`);
const encryptedMessage = await aesEncrypt(message, password);
console.log(`Encrypted Message: ${encryptedMessage}`);
} catch(error){
console.error("Encryption failed:", error);
}
})();
```
上述脚本实现了基于给定明文消息和私钥参数下的 AES CBC 模式的加密封装过程,并打印出原始文本及其对应的经过编码之后的结果[^3]。
阅读全文
相关推荐











