现在我不确定这是我做错了什么,还是在 DynamoDB 中发生了什么。
基本上,我为我的项目构建了一个简单的注册/登录系统,将用户数据/密码保存在 DynamoDB 实例中,密码使用 RIPEMD160 散列,并使用 C# 的RNGCryptoServiceProvider()
.
注册似乎工作得很好。问题出在登录时,无论如何,密码都不匹配,我认为这是因为从 DynamoDB 中提取哈希/盐时,我得到了一些时髦的字符。首先,hash 和 salt 都是长度为 20 的字节数组,并在保存到数据库之前转换为字符串。
这些示例是从 dynamo Web 界面复制/粘贴的
Example Hash: ">�Bb.ŧ�E���d��Ʀ"
Example Salt: "`���!�!�Hb�m�}e�"
当他们回来并且我调试从发电机拉回数据的函数时,两个字符串都有不同的字符(VS2010调试器):
Returned Hash: "u001B>�Bb.ŧ�E��u0003�d�u001C�Ʀ"
Returned Salt: "`���!u000B�!�Hb�u001Dmu0012�u0001}e�"
似乎这些 u001B、u000B、u001D、u0012、u0003、u001C 和 u0001 正在潜入返回的数据中,我不完全确定发生了什么?