Ich habe eine Zeichenfolge, die ich hashen möchte. Was ist der einfachste Weg, um den Hash in node.js zu generieren?
Der Hash dient der Versionskontrolle, nicht der Sicherheit.
Ich habe eine Zeichenfolge, die ich hashen möchte. Was ist der einfachste Weg, um den Hash in node.js zu generieren?
Der Hash dient der Versionskontrolle, nicht der Sicherheit.
Unter Berücksichtigung der Gedanken von http://www.thoughtcrime.org/blog/the-cryptographic-doom-principle/ (kurz gesagt: ERST verschlüsseln, DANN authentifizieren. Danach ERST verifizieren, DANN entschlüsseln) Ich habe die folgende Lösung in node.js implementiert:
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);
}
}
Es kann mit getestet werden:
var doom = encryptThenAuthenticate("The encrypted text",user.cryptoPassword);
console.log(VerifyThenDecrypt(doom,user.cryptoPassword));
Ich hoffe, das hilft :-)
Können Sie krypto-js javaScript-Bibliothek der Krypto-Standards gibt es den einfachsten Weg, um die sha256
o sha512
const SHA256 = require("crypto-js/sha256");
const SHA512 = require("crypto-js/sha512");
let password = "hello"
let hash_256 = SHA256 (password).toString();
let hash_512 = SHA512 (password).toString();
Auch wenn der Hash nicht der Sicherheit dient, können Sie sha anstelle von md5 verwenden. Meiner Meinung nach sollten die Leute md5 erst einmal vergessen, es gehört der Vergangenheit an!
Das normale nodejs sha256 ist veraltet. Sie haben also im Moment zwei Alternativen:
var shajs = require('sha.js') - https://www.npmjs.com/package/sha.js (used by Browserify)
var hash = require('hash.js') - https://github.com/indutny/hash.js
Ich bevorzuge die Verwendung von shajs
anstelle von hash
weil ich sha für die beste Hash-Funktion halte, die es derzeit gibt, und weil man im Moment keine andere Hash-Funktion braucht. Um also einen Hash in Hex zu erhalten, sollten Sie etwas wie das Folgende tun:
sha256.update('hello').digest('hex')
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.