0

我有几个关于使用 MySQL / Visual Studio 2010 (VSTO Visual Basic) 存储/检索密码的问题。我希望他们是直截了当的!

SHA-2 问题

我正在使用 MySQL(通过 PHPMyAdmin 界面)制作一个表来存储两列:用户 ID 和密码。在阅读了 SO 和一堆其他资源之后,似乎使用 SHA-2 加密和加盐存储密码是一个可行的选择。这个对吗?

视觉工作室 2010 年问题

我正在 Visual Studio 2010 中构建 VSTO 项目,并将使用 Visual Basic 访问表中的数据 - 如何使用 SHA-2 算法对用户输入的密码进行编码?我似乎找不到有关此过程的任何“当前”指南。我想我必须下载/安装一个可以将 SHA-2 算法处理到 VS2010 的扩展。这里的过程是,我在 Excel 中构建了一个“登录系统”,但我想通过将其与 MySQL 表中现有的数据进行比较来验证用户名/密码组合。

盐渍问题

此外,Salting 几乎在我阅读的所有地方都被强烈推荐,所以我决定使用随机字符串,如 's@w0s9w%$x" 或类似的东西,显然每次需要编码+匹配密码时存储/使用它数据库。这是否足够安全?您如何为每个用户使用不同的盐字但跟踪这一点?您会简单地将用户名/盐字组合保存在另一个表中并稍后提取吗?

编辑:添加了更多信息!

4

1 回答 1

1

不要尝试创建自己的密码哈希方案。而是使用一个众所周知的。通常有三个选项:BcryptScryptPBKDF2。这些是由安全专业人员设计的,并且已经存在很长时间并且没有被破坏。实现可用于多种语言。

对于腌制问题,您的基本想法是正确的。通常盐与密码一起存储在数据库中。盐不被认为是秘密,但它应该对每个用户都是唯一的。Bcrypt 哈希本身已经包含盐,因此您无需担心。

security.se 中的相关答案:https ://security.stackexchange.com/a/6415/20774

关于密码散列主题的一篇不错的文章:http: //crackstation.net/hashing-security.htm

于 2013-06-20T04:47:03.460 回答