У меня есть следующая функция для генерации хэшей 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 также была проверена - она отлично работает и возвращает случайное целое число, возвращаемое в виде строки для преобразования