<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Nodejs_-_%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_MD5</id>
	<title>Nodejs - Использование MD5 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Nodejs_-_%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_MD5"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Nodejs_-_%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_MD5&amp;action=history"/>
	<updated>2026-05-14T04:10:20Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Nodejs_-_%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_MD5&amp;diff=4263&amp;oldid=prev</id>
		<title>Vix: Новая страница: «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...»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Nodejs_-_%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_MD5&amp;diff=4263&amp;oldid=prev"/>
		<updated>2024-07-24T18:28:53Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Examples:  1)  var filename = process.argv[2];  var crypto = require(&amp;#039;crypto&amp;#039;);  var fs = require(&amp;#039;fs&amp;#039;);    var md5sum = crypto.createHash(&amp;#039;md5&amp;#039;);    var s = fs.ReadStream(filename);  s.on(&amp;#039;data&amp;#039;, function(d) {    md5sum.update(d);  });    s.on(&amp;#039;end&amp;#039;, function() {    var d = md5sum.digest(&amp;#039;hex&amp;#039;);    console.log(d + &amp;#039;  &amp;#039; + filename);  });  2)  var crypto = require(&amp;#039;crypto&amp;#039;);  var name = &amp;#039;braitsch&amp;#039;;  var hash = crypto.createHash(&amp;#039;md5&amp;#039;).update(name).digest(&amp;#039;hex...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Examples:&lt;br /&gt;
&lt;br /&gt;
1)&lt;br /&gt;
 var filename = process.argv[2];&lt;br /&gt;
 var crypto = require('crypto');&lt;br /&gt;
 var fs = require('fs');&lt;br /&gt;
 &lt;br /&gt;
 var md5sum = crypto.createHash('md5');&lt;br /&gt;
 &lt;br /&gt;
 var s = fs.ReadStream(filename);&lt;br /&gt;
 s.on('data', function(d) {&lt;br /&gt;
   md5sum.update(d);&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 s.on('end', function() {&lt;br /&gt;
   var d = md5sum.digest('hex');&lt;br /&gt;
   console.log(d + '  ' + filename);&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
2)&lt;br /&gt;
 var crypto = require('crypto');&lt;br /&gt;
 var name = 'braitsch';&lt;br /&gt;
 var hash = crypto.createHash('md5').update(name).digest('hex');&lt;br /&gt;
 console.log(hash); // 9b74c9897bac770ffc029102a200c5de&lt;br /&gt;
&lt;br /&gt;
3)&lt;br /&gt;
 $ npm install sha1&lt;br /&gt;
 &lt;br /&gt;
 and then&lt;br /&gt;
 &lt;br /&gt;
 var sha1 = require('sha1');&lt;br /&gt;
 var hash = sha1(&amp;quot;my message&amp;quot;);&lt;br /&gt;
 console.log(hash); // 104ab42f1193c336aa2cf08a2c946d5c6fd0fcdb&lt;br /&gt;
 &lt;br /&gt;
 or&lt;br /&gt;
 &lt;br /&gt;
 $ npm install md5&lt;br /&gt;
 &lt;br /&gt;
 and then&lt;br /&gt;
 &lt;br /&gt;
 var md5 = require('md5');&lt;br /&gt;
 var hash = md5(&amp;quot;my message&amp;quot;);&lt;br /&gt;
 console.log(hash); // 8ba6c19dc1def5702ff5acbf2aeea5aa&lt;br /&gt;
&lt;br /&gt;
4)&lt;br /&gt;
 const crypto = require('crypto');&lt;br /&gt;
 &lt;br /&gt;
 const sha256 = x =&amp;gt; crypto.createHash('sha256').update(x, 'utf8').digest('hex');&lt;br /&gt;
 &lt;br /&gt;
 sha256('Hello, world. ');&lt;br /&gt;
&lt;br /&gt;
5)&lt;br /&gt;
 function encrypt(text,password){&lt;br /&gt;
   var cipher = crypto.createCipher(algorithm,password)&lt;br /&gt;
   var crypted = cipher.update(text,'utf8','hex')&lt;br /&gt;
   crypted += cipher.final('hex');&lt;br /&gt;
   return crypted;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function decrypt(text,password){&lt;br /&gt;
   var decipher = crypto.createDecipher(algorithm,password)&lt;br /&gt;
   var dec = decipher.update(text,'hex','utf8')&lt;br /&gt;
   dec += decipher.final('utf8');&lt;br /&gt;
   return dec;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function hashText(text){&lt;br /&gt;
     var hash = crypto.createHash('md5').update(text).digest(&amp;quot;hex&amp;quot;);&lt;br /&gt;
     //console.log(hash); &lt;br /&gt;
     return hash;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function encryptThenAuthenticate(plainText,pw)&lt;br /&gt;
 {&lt;br /&gt;
     var encryptedText = encrypt(plainText,pw);&lt;br /&gt;
     var hash = hashText(encryptedText);&lt;br /&gt;
     return encryptedText+&amp;quot;$&amp;quot;+hash;&lt;br /&gt;
 }&lt;br /&gt;
 function VerifyThenDecrypt(encryptedAndAuthenticatedText,pw)&lt;br /&gt;
 {&lt;br /&gt;
     var encryptedAndHashArray = encryptedAndAuthenticatedText.split(&amp;quot;$&amp;quot;);&lt;br /&gt;
     var encrypted = encryptedAndHashArray[0];&lt;br /&gt;
     var hash = encryptedAndHashArray[1];&lt;br /&gt;
     var hash2Compare = hashText(encrypted);&lt;br /&gt;
     if (hash === hash2Compare)&lt;br /&gt;
     {&lt;br /&gt;
         return decrypt(encrypted,pw); &lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
It can be tested with:&lt;br /&gt;
 &lt;br /&gt;
 var doom = encryptThenAuthenticate(&amp;quot;The encrypted text&amp;quot;,user.cryptoPassword);&lt;br /&gt;
 console.log(VerifyThenDecrypt(doom,user.cryptoPassword));&lt;/div&gt;</summary>
		<author><name>Vix</name></author>
	</entry>
</feed>