我正在实现带盐的密码哈希,因此我生成了二进制盐,对密码进行了哈希处理,然后对密码和盐进行了base64编码,并将它们存储到数据库中。
现在当我检查密码时,我需要将盐解码回二进制数据,使用它来哈希提供的密码,对结果进行base64编码并检查是否与数据库中的结果匹配。
问题是,我找不到一种方法将盐解码回二进制数据。我使用Buffer.toString方法对它们进行了编码,但似乎没有相反的函数可以解码。
现在当我检查密码时,我需要将盐解码回二进制数据,使用它来哈希提供的密码,对结果进行base64编码并检查是否与数据库中的结果匹配。
问题是,我找不到一种方法将盐解码回二进制数据。我使用Buffer.toString方法对它们进行了编码,但似乎没有相反的函数可以解码。
( new Buffer( str ) ).toString( "base64" )
。 (说明:这是一段代码,其中“str”是要进行Base64编码的字符串,使用此代码可以将其转换为Base64格式。) - Nikolay Tsenkovvar buf = Buffer.from(b64string, 'base64');
请参考此处链接:https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings - Kristoffer DorphtoString('ascii')
对您无效,请尝试使用此方法:Buffer.from(string, 'base64').toString('utf-8')
。 - joeytwiddle