就随便写写crypto模块,加密在node里面挺重要的,特别是密码,用户名都用crypto加密,在我写的那个作品里面,用户名密码的存储都是用crypto加密的,也没有深究里面的内容,想深究的同学可以看:
//crypto.getCiphers();返回一个数组,包含支持的加密算法的名字;
//crypto.getHashes();返回ige包含所支持的哈希算法的数组;都可以在node里试试,返回一大长串。
//crypto.createCredentials(details);创建一个加密凭证对象,接收一个可选参数对象 已废弃
pfx : 一个字符串或者buffer对象,代表经PFX或者PKCS12编码产生的私钥、证书以及CA证书
key : 一个字符串,代表经PEM编码产生的私钥
passphrase : 私钥或者pfx的密码
cert : 一个字符串,代表经PEM编码产生的证书
ca : 一个字符串或者字符串数组,表示可信任的经PEM编码产生的CA证书列表
crl : 一个字符串或者字符串数组,表示经PEM编码产生的CRL(证书吊销列表 Certificate Revocation List)
ciphers: 一个字符串,表示需要使用或者排除的加密算法
//crypto.createHash(algorithm, options);创建返回一个哈希对象,一个使用所给算法的用于生成摘要的哈希
//类Hash 创建数据哈希摘要的类;duplex流;
//hash.update(data,[input_encoding])通过提供的数据更新哈希对象,2参指定编码。
//hash.digest([encoding]);计算传入的所有数据摘要值;
我们通过crypto.createHash()来创建一个加密实例,可以采用md5,sha1,sha256,sha512,ripemd160。通常是这么用的
var md5=crypto.createHash(‘md5‘); md5.update(‘string‘); console.log(md5.digest(‘hex‘));
打印的值就是我们用md5加密的值,然后就可以拿来存进数据库了,我是这么干的。