2015-12-30 1 views
1

J'ai une chaîne que je voudrais hacher, pour qu'elle ressemble à 51e7fae2d7b2b5388de06bc205e4a3ca. Ensuite, j'aimerais pouvoir le déshumidifier (sans le saler). Je sais que ce n'est pas sécurisé du tout, mais ce n'est pas pour la sécurité. J'ai essayé d'utiliser crypto de NodeJS, mais il semble y avoir aucun moyen de récupérer un hachage MD5 (sans utiliser une grande base de données)Hachure/hachage de base des chaînes

+2

Vous ne pouvez pas désarchiver. C'est comme ça que ça marche. Tout le point de hachage est que vous pouvez hacher les choses, mais ne pouvez pas les dé-hacher. Si vous voulez être capable de désassembler des choses, vous devriez utiliser le cryptage au lieu du hachage. – Markasoftware

+0

Je vois, j'avais une mauvaise idée des hachages alors! Merci. –

Répondre

2

Le hachage est un sens et irréversible. Ce que vous voulez, c'est encoder et décoder. Base64 est souvent utilisé pour ce que vous voulez:

// encode 
new Buffer("Hello World").toString('base64'); 
//=> SGVsbG8gV29ybGQ= 

// decode 
new Buffer("SGVsbG8gV29ybGQ=", 'base64').toString('ascii'); 
//=> Hello World 
+0

Fonctionne, mais elle n'est pas sécurisée du tout, car base64 peut être non-base64 sans clé. Mais le PO a dit que ce n'était pas pour la sécurité. – Markasoftware

+0

Droit, pas pour la sécurité. Si c'est juste pour générer une représentation obfusquée, c'est efficace. –

+0

Fonctionne comme un charme. –

1

Les hachages ne peuvent pas être hachés. Ce que vous essayez de faire est complètement impossible. Le plus proche que les choses viennent est de regarder le hachage dans une base de données, mais vraiment dé-hachage MD5 est impossible.

Voici comment les hachages sont destinés à être utilisés (pour se connecter sur un site): Lorsque l'utilisateur crée un compte, le mot de passe est haché et le hachage est stocké dans une base de données. Ensuite, chaque fois qu'ils tentent de se connecter, le mot de passe qu'ils saisissent est haché, et si le hachage correspond à celui de la base de données, ils doivent avoir le mot de passe correct. L'avantage de ceci est que si un pirate parvient à accéder à la base de données, il ne peut toujours pas accéder au mot de passe de l'utilisateur; tout ce qu'ils ont est le hash. Et puisque les hachages ne peuvent pas être reconvertis dans le mot de passe original, le pirate a réussi à avoir accès à des caractères alphanumériques aléatoires.

Si vous voulez pouvoir "dé-masquer" des choses, vous devriez plutôt utiliser le cryptage. CryptoJS supporte le cryptage AES, qui est probablement l'algorithme le plus populaire.

+0

Ahh, oui .. Merci! Je comprends la différence maintenant. Je devrais de cryptage ou obscurcissement. –