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 函数设置引擎 |