如何一个使用SecureString的创建SHA1或SHA512哈希?SecureString、哈希

2023-09-04 03:14:57 作者:笙语亦凉

我想用在VB.NET一个SecureString的varible并且将其转换为SHA1或SHA512哈希值。如何将我安全的SecureString的转换为字节数组HashAlgorithm.ComputeHash会接受吗?

I would like to use a SecureString varible within VB.NET and convert that to a SHA1 or SHA512 hash. How would I securely convert the SecureString to the Byte array that HashAlgorithm.ComputeHash will accept?

推荐答案

键入它在C#和转换到VB。我希望它仍然有效!

Typed it up in c# and converted to VB. Hopefully it still works!

Dim input As [Char]() = "Super Secret String".ToCharArray()
Dim secret As New SecureString()

For idx As Integer = 0 To input.Length - 1
    secret.AppendChar(input(idx))
Next
SecurePassword.MakeReadOnly()

Dim pBStr As IntPtr = Marshal.SecureStringToBSTR(secret)

Dim output As String = Marshal.PtrToStringBSTR(pBStr)
Marshal.FreeBSTR(pBStr)

Dim sha As SHA512 = New SHA512Managed()
Dim result As Byte() = sha.ComputeHash(Encoding.UTF8.GetBytes(output))
 
精彩推荐
图片推荐