NodeJS-crypto

来源:互联网 发布:什么是互联网大数据 编辑:程序博客网 时间:2024/05/19 06:38

一系列的安全编码:

const crypto = require('crypto');//md5const hash = crypto.createHash('md5');//可任意多次调用update,默认编码utf-8hash.update('Hello,world!');hash.update('Hello,nodejs!');console.log(hash.digest('hex'));//hmac,多了一个密钥const hmac = crypto.createHmac('sha256','secret-key');hmac.update('Hello,world!');hmac.update('Hello,nodejs!');console.log(hmac.digest('hex'));//aesfunction aesEncrypt(data,key){    const cipher = crypto.createCipher('aes192',key);    var crypted = cipher.update(data,'utf8','hex');    crypted += cipher.final('hex');    return crypted;}function aesDecrypt(encrypted,key){    const decipher = crypto.createDecipher('aes192',key);    var decrypted = decipher.update(encrypted,'hex','utf8');    decrypted += decipher.final('utf8');    return decrypted;}var data = 'Hello,this is a secret message!';var key = 'Password!';var encrypted = aesEncrypt(data,key);var decrypted = aesDecrypt(encrypted,key);console.log('Plain text:'+data);console.log('Encrypted text:'+encrypted);console.log('Decrypted text:'+decrypted);//Diffie-Hellmanvar m1 = crypto.createDiffieHellman(512);var m1_keys = m1.generateKeys();var prime = m1.getPrime();var generator = m1.getGenerator();console.log('Prime:'+prime.toString('hex'));console.log('Generator:'+generator.toString('hex'));var m2 = crypto.createDiffieHellman(prime,generator);var m2_keys = m2.generateKeys();var m1_secret = m1.computeSecret(m2_keys);var m2_secret = m2.computeSecret(m1_keys);console.log('Secret of m1:'+m1_secret.toString('hex'));console.log('Secret of m2:'+m2_secret.toString('hex')); 


0 0
原创粉丝点击