基本的string散列/去散列

我有一个string,我想哈希,让它看起来像51e7fae2d7b2b5388de06bc205e4a3ca。 然后,我想能够去除它(没有腌制)。 我知道这根本不安全,但这不是为了安全。 我试过从NodeJS使用encryption,但似乎没有办法检索MD5哈希(不使用一些大型数据库)

       

网上收集的解决方案 "基本的string散列/去散列"

散列是一种方式,不可逆转。 你想要的是编码和解码。 Base64通常用于你想要的东西:

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

哈希不能被去除哈希。 你想要做的是完全不可能的。 事情最接近的是在数据库中查找散列,但真正去除散列MD5是不可能的。

以下是如何使用散列(用于在网站上login):当用户创build一个帐户时,密码被散列,散列存储在数据库中。 然后,每当他们尝试login时,他们input的密码都被散列,如果散列与数据库中的散列相匹配,那么他们必须拥有正确的密码。

这样做的好处是,如果黑客设法访问数据库,他们仍然无法访问用户的密码; 他们所有的就是哈希。 而且由于哈希不能转换回原来的密码,黑客已经有效地设法访问了一些随机的字母数字字符。

如果你想能够“去散列”的东西,那么你应该使用encryption,而不是。 CryptoJS支持AESencryption,这可能是最stream行的algorithm。