Настройка типа VB для хэша SHA512 - PullRequest
1 голос
/ 21 июня 2011

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

1 Ответ

2 голосов
/ 21 июня 2011

Исправлено с помощью:

Функция create_hash (пароль ByVal, соль ByVal)

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

Dim return_result As String = BitConverter.ToString (result)

Быть изменой

...