Vb.net SHA512哈希的VB类型设置

Vb.net SHA512哈希的VB类型设置,vb.net,types,type-conversion,Vb.net,Types,Type Conversion,我有以下生成sha512哈希的函数。哈希已成功生成,但在将生成的字符串传递给其他函数时导致此错误: 输入字符串的格式不正确 调试时,保存返回哈希(设置为字符串)的变量为空。我尝试在函数和调用代码中将类型更改为int、int64和byte(数组和标准变量),这会导致其他各种错误。如何正确更改数据类型以解决此问题 Function create_hash(ByVal password, ByVal salt) Dim salty As String = password & salt '

我有以下生成sha512哈希的函数。哈希已成功生成,但在将生成的字符串传递给其他函数时导致此错误:

输入字符串的格式不正确

调试时,保存返回哈希(设置为字符串)的变量为空。我尝试在函数和调用代码中将类型更改为int、int64和byte(数组和标准变量),这会导致其他各种错误。如何正确更改数据类型以解决此问题

Function create_hash(ByVal password, ByVal salt)

Dim salty As String = password & salt

'convert salty password to binary to feed into hash function
Dim encText As New System.Text.UTF8Encoding()
Dim btText() As Byte
btText = encText.GetBytes(salty)


'Dim data(btText) As Byte
'create password hash
Dim result() As Byte
Dim shaM As New SHA512Managed()
result = shaM.ComputeHash(btText)

Dim return_result As String

For Each Item As Integer In result

    return_result = return_result & Item

Next



Return return_result
End Function
呼叫代码:

Dim i_h_pass As String
Dim i_pass As String = pass.Text
            'handle password generation (matching passwords checked at validation)
            Dim newHash = New hashing
            Dim salt As String = Convert.ToString(newHash.create_salt)
            i_h_pass = Convert.ToString(newHash.create_hash(i_pass, salt))
编辑:

create_salt函数也经过了检查-它工作正常,返回一个随机整数,作为字符串返回,用于convence

修复:

函数create_hash(ByVal密码,ByVal salt)

Dim返回\u结果为String=BitConverter.ToString(结果)

改变

Dim salty As String = password & salt

'convert salty password to binary to feed into hash function
Dim encText As New System.Text.UTF8Encoding()
Dim btText() As Byte
btText = encText.GetBytes(salty)


'Dim data(btText) As Byte
'create password hash
Dim result() As Byte
Dim shaM As New SHA512Managed()
result = shaM.ComputeHash(btText)

Dim return_result As String = BitConverter.ToString(result)
    Return return_result
End Function