Hier ist anbei mein VB.NET-Code:
Private Function Verschluesseln(ByVal sText As String, Optional ByVal _
Decrypt As Boolean = False) As String
Dim AES As New System.Security.Cryptography.RijndaelManaged
Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
Dim Key() As Byte = MD5.ComputeHash(System.Text.Encoding.UTF8.GetBytes( _
MasterPasswort))
MsgBox(Strings.Replace(BitConverter.ToString(Key), "-", ""), _
MsgBoxStyle.Information, "MD5 vom MasterPasswort")
MD5.Clear()
AES.Key = Key
'MsgBox(AES.Key.Length & vbCrLf & AES.KeySize)
AES.Mode = Security.Cryptography.CipherMode.ECB
MsgBox(AES.Mode.ToString)
If Decrypt = False Then
AES.GenerateIV()
Dim IV() As Byte = AES.IV
Dim MemStream As New System.IO.MemoryStream
MemStream.Write(IV, 0, IV.Length)
Dim CryStream As New System.Security.Cryptography.CryptoStream( _
MemStream, AES.CreateEncryptor, _
Security.Cryptography.CryptoStreamMode.Write)
Dim Data() As Byte = System.Text.Encoding.UTF8.GetBytes(sText)
CryStream.Write(Data, 0, Data.Length)
CryStream.FlushFinalBlock()
Dim EncData() As Byte = MemStream.ToArray
CryStream.Close()
AES.Clear()
Dim Result As String = ""
Result &= "IV: " & vbCrLf & Convert.ToBase64String(AES.IV) & vbCrLf _
& vbCrLf
Result &= "Zeichen: " & vbCrLf & Convert.ToBase64String( _
AES.IV).Length & vbCrLf & vbCrLf & vbCrLf
Result &= "Rijndael-128: " & vbCrLf & Convert.ToBase64String( _
EncData) & vbCrLf & vbCrLf
Result &= "Zeichen: " & vbCrLf & Convert.ToBase64String( _
EncData).Length & vbCrLf & vbCrLf & vbCrLf
Result &= "MasterPasswort: " & vbCrLf & MasterPasswort
'Clipboard.SetText(Convert.ToBase64String(EncData))
Return Result
Else
Dim AESLength As Integer = 16
Dim EncData() As Byte = Convert.FromBase64String(sText)
Dim MemStream As New System.IO.MemoryStream(EncData)
Dim IV(15) As Byte
MemStream.Read(IV, 0, AESLength)
AES.IV = IV
Dim CryStream As New System.Security.Cryptography.CryptoStream( _
MemStream, AES.CreateDecryptor, _
Security.Cryptography.CryptoStreamMode.Read)
Dim Data(MemStream.Length - AESLength) As Byte
Dim i As Integer = CryStream.Read(Data, 0, Data.Length)
CryStream.Close()
AES.Clear()
Return System.Text.Encoding.UTF8.GetString(Data, 0, i)
End If
End Function Und das hier ist mein PHP-Code (leider werden die |br| hier eingefügt'):
function encryptData($value){
$key = strtoupper(md5("test"));
echo "Key = ".$key."<br><br><br>";
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
echo "IV = ".base64_encode($iv)."<br>";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, _
MCRYPT_MODE_ECB, $iv);
return base64_encode($crypttext);
}
function decryptData($value){
$key = strtoupper(md5("test"));
$crypttext = base64_decode($value);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
echo "IV = ".base64_encode($iv)."<br>";
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, _
MCRYPT_MODE_ECB, $iv);
return trim($decrypttext);
} Könntest du mir zeigen, wo der Fehler ist? |