こんにちは、Java コードを VB に移行しようとしています。DES 暗号化を複製する必要がありますが、この部分で問題が発生しています。
私は大学以来、暗号化を行っていないことを認めます。
これにより、MD5 を使用してキーが暗号化され、DES 暗号化の関数に送信されます。エラーの手がかりが得られたようです。キーは 8 桁のキーである必要があり、16 桁のキーを送信しています。
Dim MD5 As New MD5CryptoServiceProvider()
Dim dataHash() As Byte = MD5.ComputeHash(Encoding.UTF8.GetBytes(challenge + password))
Dim sb As New StringBuilder
Dim b As Byte
For Each b In dataHash
sb.Append(b.ToString("x2").ToLower())
Next
Dim md5Key As String = sb.ToString
''Dim md5Key As String = digestUtils.md5Hex(challenge + password)
Dim geoEncrypt As New GeoEncriptamiento
Dim challengeAnswer As String = geoEncrypt.EncryptFile(challenge, md5Key)
これは暗号化を行うコードです
Function EncryptFile(ByVal esquema As String, ByVal llave As String) As String
Dim DES As New DESCryptoServiceProvider()
'Establecer la clave secreta para el algoritmo DES.
'Se necesita una clave de 64 bits y IV para este proveedor
DES.Key = UTF8Encoding.UTF8.GetBytes(llave)
DES.IV = UTF8Encoding.UTF8.GetBytes(llave)
Try
Dim inputByteArray() As Byte = Encoding.UTF8.GetBytes(esquema)
Dim ms As New MemoryStream
Dim cs As New CryptoStream(MS, DES.CreateEncryptor(DES.Key, DES.IV), CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
cs.FlushFinalBlock()
Return Convert.ToBase64String(ms.ToArray())
Catch ex As Exception
Return "Error"
End Try
End Function
エラーは、MD5 を DES.Key に解析しようとしたときに発生します。