Nodejs - Использование MD5
Материал из support.qbpro.ru
Examples:
1)
var filename = process.argv[2]; var crypto = require('crypto'); var fs = require('fs'); var md5sum = crypto.createHash('md5'); var s = fs.ReadStream(filename); s.on('data', function(d) { md5sum.update(d); }); s.on('end', function() { var d = md5sum.digest('hex'); console.log(d + ' ' + filename); });
2)
var crypto = require('crypto'); var name = 'braitsch'; var hash = crypto.createHash('md5').update(name).digest('hex'); console.log(hash); // 9b74c9897bac770ffc029102a200c5de
3)
$ npm install sha1 and then var sha1 = require('sha1'); var hash = sha1("my message"); console.log(hash); // 104ab42f1193c336aa2cf08a2c946d5c6fd0fcdb or $ npm install md5 and then var md5 = require('md5'); var hash = md5("my message"); console.log(hash); // 8ba6c19dc1def5702ff5acbf2aeea5aa
4)
const crypto = require('crypto'); const sha256 = x => crypto.createHash('sha256').update(x, 'utf8').digest('hex'); sha256('Hello, world. ');
5)
function encrypt(text,password){ var cipher = crypto.createCipher(algorithm,password) var crypted = cipher.update(text,'utf8','hex') crypted += cipher.final('hex'); return crypted; } function decrypt(text,password){ var decipher = crypto.createDecipher(algorithm,password) var dec = decipher.update(text,'hex','utf8') dec += decipher.final('utf8'); return dec; } function hashText(text){ var hash = crypto.createHash('md5').update(text).digest("hex"); //console.log(hash); return hash; } function encryptThenAuthenticate(plainText,pw) { var encryptedText = encrypt(plainText,pw); var hash = hashText(encryptedText); return encryptedText+"$"+hash; } function VerifyThenDecrypt(encryptedAndAuthenticatedText,pw) { var encryptedAndHashArray = encryptedAndAuthenticatedText.split("$"); var encrypted = encryptedAndHashArray[0]; var hash = encryptedAndHashArray[1]; var hash2Compare = hashText(encrypted); if (hash === hash2Compare) { return decrypt(encrypted,pw); } }
It can be tested with:
var doom = encryptThenAuthenticate("The encrypted text",user.cryptoPassword); console.log(VerifyThenDecrypt(doom,user.cryptoPassword));