如何对mysql数据库的密码进行哈希处理和加盐处理

时间:2019-01-21 18:00:46

标签: mysql vb.net hash md5 salt

我已经看到了很多关于对密码进行哈希和加盐,然后将它们与MySQL数据库中的哈希和盐进行比较的主题,但是它们都没有真正的帮助。

它们要么是真正的“模糊”,要么不是使用正确的编码语言。

我正在Visual Basic中进行编码。

因此,我正在使用一个名为“ MyBB”的论坛软件,它将用户密码加密为MD5哈希,并在其旁边生成一个盐。

我已经成功连接到MySQL数据库,并且可以使用用户名登录我的应用程序,但是因为我还没有对密码进行哈希处理和盐腌,然后将二者进行了比较。。我无法登录使用我的原始密码-相反,我必须使用数据库中的MD5哈希密码。

我的问题是: 您如何对密码进行哈希处理,然后对其加盐,然后将二者进行比较,这样我就可以使用原始密码登录,而不必使用数据库中的MD5哈希?

任何帮助将不胜感激。

我搜索并阅读了许多主题,但是没有一个主题提供如何做的主题。它简短地提到您需要对它进行哈希处理并加密码,然后将二者进行比较,但是它没有提供任何代码或操作步骤。在Visual Basic中,关于此操作的主题也很少。它们中的大多数用于php和c#,当您主要不使用这些语言编写代码时,这无济于事。

1 个答案:

答案 0 :(得分:0)

散列和加盐在1990年代就已经过时,MD5通常是哈希的一种糟糕选择,尤其是密码,您永远不要使用它

推荐的方法是使用password_hash正确地对密码进行哈希处理,并使用password_verify进行验证。

这两个默认情况下都使用Bcrypt,这是很难破解的密码专用哈希。

您可以在PHP和其他语言中使用Bcrypt,这是一个定义良好的标准,.Net应用程序同样支持该标准。 MD5,即使是“盐渍”的,也完全不足,需要立即更换。

我强烈建议您尽快切换到基于Bcrypt的密码,并将所有用户从MD5迁移到Bcrypt。他们每次登录时,如果知道MD5哈希匹配,就可以更新密码字段。

有关完全没有用的MD5的示例,请搜索73868cb1848a216984dca1b6b0ee37bc