crypto
是node.js
中实现加密和解密的模块
在node.js
中,使用OpenSSL
类库作为内部实现加密解密的手段
OpenSSL
是一个经过严格测试的可靠的加密与解密算法的实现工具
散列算法也叫哈希算法,用来把任意长度的输入变换成固定长度的输出,常见的有md5,sha1等
获取所有的散列算法
console.log(crypto.getHashes());
散列算法示例
var crypto = require('crypto');
var md5 = crypto.createHash('md5');//返回哈希算法
var md5Sum = md5.update('hello');//指定要摘要的原始内容,可以在摘要被输出之前使用多次update方法来添加摘要内容
var result = md5Sum.digest('hex');//摘要输出,在使用digest方法之后不能再向hash对象追加摘要内容。
console.log(result);
md5算法容易被彩虹表攻击,彩虹表就是描述()明文->密文)对应关系的一个大型数据库,破解时通过密文直接反查明文。 http://www.cmd5.com/
HMAC算法将散列算法与一个密钥结合在一起,以阻止对签名完整性的破坏 生成私钥
$ openssl genrsa -out key.pem 1024
var crypto = require('crypto');
var shasum = crypto.createHmac('sha1', 'zfpx');
var result = shasum.update('hello').digest('hex');
console.log(result);