关于使用MySQL / Visual 2010 (VSTO Visual )存储/检索密码,我有几个问题。我希望他们能挺身而出!
SHA-2问题
我正在使用MySQL (通过PHPMyAdmin接口)创建一个表,只存储两列:用户ID和密码。在阅读了SO和其他一些资源之后,使用SHA-2加密和盐析存储密码似乎是一种可行的选择。这是正确的吗?
VISUAL 2010问题
我正在Visual 2010中构建一个VSTO项目,并将使用Visual访问表中的数据--如何用SHA-2算法对用户输入的密码进行编码?我似乎找不到任何关于这个过程的“当前”指南。我想我必须下载/安装一个可以将SHA-2算法处理到VS2010中的扩展。这里的过程是,我在Excel中构建了一个“登录系统”,但我希望通过将用户名/密码组合与MySQL表中已有的数据进行比较来验证用户名/密码组合。
盐渍问题
此外,几乎所有我读到的地方都强烈推荐使用Salting,所以我决定使用一个随机字符串,比如's@w0s9w%$x“或类似的字符串,并在每次我需要编码/匹配密码到数据库时使用它/使用它。这足够安全吗?您如何对每个用户使用不同的盐类单词,但要跟踪它?您会简单地保存用户名/盐语组合在另一个表中并在以后提取吗?
编辑:添加更多信息!
发布于 2013-06-20 04:47:03
不要尝试创建您自己的密码散列方案。相反,使用一个众所周知的。通常有三种选择:Bcrypt、氪石和PBKDF2。这些都是由安全专业人员设计的,而且已经存在了很长一段时间,而且还没有被破坏。许多语言都有实现。
关于盐渍的问题,你有基本的想法。通常,salt与密码一起存储在数据库中。盐并不是一个秘密,但它应该对每个用户都是独一无二的。Bcrypt散列本身已经包含了盐,所以您不需要担心这个问题。
security.se:https://security.stackexchange.com/a/6415/20774中的相关答案
一篇关于密码散列主题的好文章:http://crackstation.net/hashing-security.htm
https://stackoverflow.com/questions/17203790
复制相似问题