gpt4 book ai didi

mysql - 验证数据库中的盐

转载 作者:行者123 更新时间:2023-11-29 20:19:02 25 4
gpt4 key购买 nike

我可以使用随机盐存储散列密码。我如何验证密码?

    Public Function GetSaltedHash(pw As String, salt As String) As String
Dim tmp As String = pw & salt


Using hash As HashAlgorithm = New SHA512Managed()

Dim saltyPW = Encoding.UTF8.GetBytes(tmp)

Dim hBytes = hash.ComputeHash(saltyPW)

Return Convert.ToBase64String(hBytes)
End Using
End Function

Public Function CreateNewSalt(size As Integer) As String

Using rng As New RNGCryptoServiceProvider

Dim data(If(size < 7, 7, size)) As Byte

rng.GetBytes(data)

Return Convert.ToBase64String(data)
End Using
End Function

使用哈希和随机盐创建密码

Const SaltSize As Integer = 31
Dim pw As String = txt_regpass.Text
Dim dbSalt = CreateNewSalt(SaltSize)

GetSaltedHash(pw, dbSalt))

最佳答案

本质上,您可以将盐与哈希值一起保存,通常作为前缀 - 哈希不需要保密。

更好:使用bcrypt ,它会为您完成这一切,迭代并且安全。
请参阅SO answer由 Plutonix 提供。

仅使用 SHA512 或任何不进行迭代的哈希函数是非常弱且易受攻击的。

关于mysql - 验证数据库中的盐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com