基础知识:
消息摘要(Message Digest)
1. sha1算法
cookie-parse中对cookie值进行摘要,如:
//对string进行sha1算法 function sha1(str){ return crypto.createHash('sha1').update(str).digest('hex'); }
可以参考博客:http://blog.youkuaiyun.com/liangklfang/article/details/51072424
2.非对称加密概念(RSA)
有两个key,私钥和公钥,甲方公钥加密进行传输,乙方用私钥对密文进行解密,对应nodejs的包为node-rsa,代码如下:
var NodeRSA = require('node-rsa'); var key = new NodeRSA({b: 512}); console.log("key:",key); //包含key的各种信息 var text = 'Hello RSA!'; var encrypted = key.encrypt(text, 'base64'); console.log('encrypted: ', encrypted); //对text加密:BiwS93HOUjgr8FK0ZpEcIoxlYccAL+ikeFngE8xk/a/KJ2oCZl73mjwWuj967D+vrRjRU4CfY1Fnvgc4ZrH2Tg== var decrypted = key.decrypt(encrypted, 'utf8'); //对text解密: Hello RSA! console.log('decrypted: ', decrypted);
3.HTTPS的算法
HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256