Я новичок-шифр, пытающийся передать некоторые значения взад и вперед между системами. Я могу зашифровать значение, но не могу понять, как расшифровать на другом конце. Я создал простое приложение Windows Forms с помощью VB.NET. Попытка ввести значение и ключ, зашифровать и затем расшифровать, чтобы получить исходное значение. Вот мой код. Любая помощь очень ценится. Благодарю.Как расшифровать строку, зашифрованную с помощью HMACSHA1?
Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Public Class Form1
Private Sub btnEncode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncode.Click
Dim hmacsha1 As New HMACSHA1(Encoding.ASCII.GetBytes(txtKey.Text))
Dim hashValue As Byte() = hmacsha1.ComputeHash(Encoding.ASCII.GetBytes(txtValue.Text))
txtResult.Text = BytesToHexString(hashValue)
hmacsha1.Clear()
End Sub
Private Sub btnDecode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecode.Click
'???
End Sub
Private Function BytesToHexString(ByVal bytes As Byte()) As String
Dim output As String = String.Empty
Dim i As Integer = 0
Do While i < bytes.Length
output += bytes(i).ToString("X2")
i += 1
Loop
Return output
End Function
End Class
Спасибо за информацию, Джон. – 2010-03-12 17:00:20
Ша-1 - односторонний хеш. HMAC-SHA1 - это код аутентификации сообщения. Это явно не одно и то же. Это действительно помогло бы быть более точным. – Accipitridae
* Это сложная тема * - Для записи есть код и псевдокод для реализации hmac_hash [по wikipedia] (http://en.wikipedia.org/wiki/Hash-based_message_authentication_code). – automaton