如何一个使用SecureString的创建SHA1或SHA512哈希? [英] How do a use a SecureString to create a SHA1 or SHA512 Hash?

查看:172
本文介绍了如何一个使用SecureString的创建SHA1或SHA512哈希?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用在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))

这篇关于如何一个使用SecureString的创建SHA1或SHA512哈希?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆