Напечатал это в c # и преобразовал в VB. Надеюсь, это все еще работает!
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))
редактировать
Как было отмечено мной и несколькими другими в комментариях, я хочу обратить на это внимание здесь. Делать это не очень хорошая идея. Вы перемещаете байты в место, которое больше не безопасно. Конечно, вы МОЖЕТЕ сделать это, но вы, вероятно, не должны