Sono un principiante della crittografia che cerca di passare alcuni valori avanti e indietro tra i sistemi. Posso crittografare il valore, ma non riesco a capire come decodificare dall'altra parte. Ho creato una semplice applicazione Windows Form utilizzando VB.NET. Cercando di inserire un valore e una chiave, crittografare e quindi decrittografare per ottenere il valore originale. Ecco il mio codice finora. Qualsiasi aiuto molto apprezzato. Grazie.Come decodificare una stringa crittografata con 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
Grazie per l'informazione, Jon. –
Sha-1 è un hash unidirezionale. HMAC-SHA1 è un codice di autenticazione del messaggio. Quelle chiaramente non sono la stessa cosa. Sarebbe davvero d'aiuto essere un po 'più preciso. – Accipitridae
* è un argomento complicato * - Per la cronaca, c'è codice e pseudo-codice per l'implementazione hmac_hash [su wikipedia] (http://en.wikipedia.org/wiki/Hash-based_message_authentication_code). – automaton