Moin,
wir wollen Loginpasswörter die in einer
MSSQL gespeichert sind, ver- und entschlüsseln sowohl in XE6 mit
DEC 5.2 und Visual Studio 2013 damit wir das Anmeldefenster bauen können. Nun ist es so, dass wir dabei nicht auf die selben Ergebnisse kommen
Code Visual Studio
Code:
public static string EncryptString(string stringToEncrypt,string encryptionKey)
{
string encrypted = String.Empty;
byte[] key = Encoding.Unicode.GetBytes(encryptionKey);
RijndaelManaged RMCrypto = new RijndaelManaged();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, RMCrypto.CreateEncryptor(key, key), CryptoStreamMode.Write);
byte[] encryptedString = Encoding.ASCII.GetBytes(stringToEncrypt);
cs.Write(encryptedString, 0, encryptedString.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
ms.Close();
cs.Close();
}
Key: 12345678 (encryptionKey)
Wert: test (stringToEncrypt)
Ergebnis: 1iJosVDlt3OJZeMtfWhulQ==
Delphi-Quellcode:
with TCipher_Rijndael.Create do
begin
try
m1.Lines.Add('KEY : '+ wsKey);
m1.Lines.Add('Text : '+ wsString);
SetLength(vKEY,16);
setlength(vIV,16);
vKey := TEncoding.Unicode.GetBytes(wsKey);
vIv := TEncoding.Unicode.GetBytes(wsKey);
Init(vkey, 16, vKey, 16);
Mode := cmCBCx;
Data := EncodeBinary(wsString, TFormat_MIME64);
m1.Lines.Add('Data : '+ Data + ' '+inttostr(length(data)));
finally
Free;
end;
end;
KEY : 12345678 (wsKey)
Text : test (wsString)
Data : 8jnglg==
Wir haben hier bewusst auf Hash und Salt verzichte um erstmal eine gemeinsame Basis zu finden. Hat jemand dazu eine Idee???