【问题标题】:What is the latest in password hash algorithm/data encryption for mysql?mysql 最新的密码哈希算法/数据加密是什么?
【发布时间】:2018-01-02 13:34:15
【问题描述】:

由于我对密码学知之甚少,我试图在某些vb.net winform 应用程序中找到散列用户密码的最佳方法;然后将其存储在在线mysqldb。 我找到了很多关于这个主题的帖子,但不知道哪一个是最好的方法。

我联系了this MSDN post,但仍然不确定我是否可以使用它。

我无法在哪里输入一些随机密钥,它是由函数自动生成的。

所以我的问题是,这是密码哈希的可靠函数吗? 有其他选择吗?

谢谢

代码:

进口系统 导入系统.IO 导入 System.Security.Cryptography Aes 类示例 公共共享子 Main() 尝试 Dim original As String = "这里有一些要加密的数据!" ' 创建一个新的 Aes 实例 ' 班级。这会生成一个新的密钥和初始化 ' 向量 (IV)。 使用 myAes 作为 Aes = Aes.Create() ' 将字符串加密为字节数组。 暗淡加密为 Byte() = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV) ' 将字节解密为字符串。 Dim 往返 As String = DecryptStringFromBytes_Aes(encrypted, myAes.Key, myAes.IV) '显示原始数据和解密数据。 Console.WriteLine("Original: {0}", original) Console.WriteLine("往返:{0}", 往返) 结束使用 将 e 捕获为异常 Console.WriteLine("错误:{0}", e.Message) 结束尝试 结束子'主要 共享函数 EncryptStringToBytes_Aes(ByVal plainText As String, ByVal Key() As Byte, ByVal IV() As Byte) As Byte() ' 检查论点。 If plainText Is Nothing OrElse plainText.Length

【问题讨论】:

    标签: vb.net visual-studio security


    【解决方案1】:

    不要加密密码,当攻击者得到数据库时,他也会得到加密密钥。仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。使用随机盐在 HMAC 上迭代大约 100 毫秒,然后将盐与哈希一起保存。使用ehashPBKDF2Bcryptpasslib.hash 等函数或类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。

    NIST 目前推荐使用PBKDF2 作为密码验证器。

    见:

    【讨论】:

    • 非常感谢@zaph,如果您能在 vb.net 中发布一个实现链接,那就太好了。谢谢
    • .NET Rfc2898DeriveBytes,是 PBKDF2 只是 MS 喜欢添加混淆。
    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2023-04-08
    • 2010-12-08
    • 2019-03-17
    • 2012-06-23
    相关资源
    最近更新 更多