Node.js Crypto 模块
实例
加密文本 ‘abc’
var crypto = require('crypto');var mykey = crypto.createCipher('aes-128-cbc', 'mypassword');var mystr = mykey.update('abc', 'utf8', 'hex')mystr += mykey.final('hex');console.log(mystr); //34feb914c099df25794bf9ccb85bea72
实例
解密文本 ‘abc’
var crypto = require('crypto');var mykey = crypto.createDecipher('aes-128-cbc', 'mypassword');var mystr = mykey.update('34feb914c099df25794bf9ccb85bea72', 'hex', 'utf8')mystr += mykey.final('utf8');console.log(mystr); //abc
定义与用法
crypto 模块提供一种处理加密数据的方法。
语法
在应用程序中包含加密模块的语法:
var crypto = require('crypto');
Crypto 属性与方法
| 方法 | 描述 |
|---|---|
| constants | 返回包含加密常量的对象 |
| fips | 检查是否正在使用 FIP S加密提供程序 |
| createCipher() | 使用特定算法和密码创建密码对象 |
| createCipheriv() | 使用特定算法、密码和初始化向量创建密码对象 |
| createDecipher() | 使用特定算法和密码创建解密对象 |
| createDecipheriv() | 使用特定算法、密码和初始化向量创建解密对象 |
| createDiffieHellman() | 创建 DiffieHellman 密钥交换对象 |
| createECDH() | 创建椭圆曲线 Diffie-Hellmann 密钥交换对象 |
| createHash() | 使用指定的算法创建哈希对象 |
| createHmac() | 使用指定的算法和密钥创建 Hmac 对象 |
| createSign() | 使用指定的算法和密钥创建符号对象 |
| createVerify() | 使用指定的算法创建验证对象 |
| getCiphers | 返回支持的密码算法数组 |
| getCurves() | 返回支持的椭圆曲线数组 |
| getDiffieHellman() | 返回预定义的 Diffie-Hellman 密钥交换对象 |
| getHashes() | 返回支持的哈希算法数组 |
| pbkdf2() | 创建基于密码的密钥派生函数实现 |
| pbkdf2Sync() | 创建基于同步密码的密钥派生函数实现 |
| privateDecrypt() | 使用私钥解密数据 |
| timingSafeEqual() | 比较两个缓冲区,如果它们相等,则返回 true,否则返回 false |
| privateEncrypt() | 使用私钥加密数据 |
| publicDecrypt() | 使用公钥解密数据 |
| publicEncrypt() | 使用公钥加密数据 |
| randomBytes() | 创建随机数据 |
| setEngine() | 为部分或全部 OpenSSL 函数设置引擎 |