我正在尝试制作一个具有登录/注销功能的网站,并计划正确地进行哈希和加盐处理密码。然而,我面临的问题是如何在数据库中存储密码。我知道需要将哈希+盐处理后的密码存储在数据库中(不能以明文或明文加密方式),但我不知道如何技术上绕过将二进制数据插入到数据库中。
在我的早期尝试中,我唯一能够将数据输入到数据库中的方法是将二进制数据转换为base64字符串并插入到varchar密码字段中,但有些东西告诉我这不是正确的方法。
数据库中的密码字段目前是varchar,但据我所知,哈希密码是二进制的。因此,即使我将密码字段更改为二进制对象,我仍然不知道如何实际插入它!
如果我讲得不清楚,请要求澄清,我会回答你的。
在我的早期尝试中,我唯一能够将数据输入到数据库中的方法是将二进制数据转换为base64字符串并插入到varchar密码字段中,但有些东西告诉我这不是正确的方法。
数据库中的密码字段目前是varchar,但据我所知,哈希密码是二进制的。因此,即使我将密码字段更改为二进制对象,我仍然不知道如何实际插入它!
如果我讲得不清楚,请要求澄清,我会回答你的。
byte[] pwdEntered = pw512.ComputeHash(System.Text.Encoding.Unicode.GetBytes(pwBox.Text));
而我放入数据库中的值是这个的结果:Convert.ToBase64String(pwdEntered)
。@Chris - 我不是不想使用base64,只是这是我第一次这样做,所以我不确定是否这是可接受的方法,或者是否有其他高级的方法。 - tgmatt