Hallo leute ich versuche grade unsere Lizenzsierung von einem Dot Net Projekt umzubauen und scheitere an den Vector eigenschaften.
Code:
string passPhrase = "123457890";
string saltValue = "0987654321";
string hashAlgorithm = "MD5";
int passwordIterations = 2;
string initVector = "@1B21337e5F6g7H8";
int keySize = 256;
byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector);
byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue);
byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
PasswordDeriveBytes password = new PasswordDeriveBytes(
passPhrase,
saltValueBytes,
hashAlgorithm,
passwordIterations);
byte[] keyBytes = password.GetBytes(keySize / 8);
RijndaelManaged symmetricKey = new RijndaelManaged();
symmetricKey.Mode = CipherMode.CBC;
ICryptoTransform encryptor = symmetricKey.CreateEncryptor(
keyBytes,
initVectorBytes);
[COLOR="Red"] MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,
encryptor,
CryptoStreamMode.Write);
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptoStream.FlushFinalBlock();
byte[] cipherTextBytes = memoryStream.ToArray();
memoryStream.Close();
cryptoStream.Close();
string cipherText = Convert.ToBase64String(cipherTextBytes);[/COLOR] return cipherText;
Ich habe es soweit geschaft nur komme ich mit der DOT Funktion CryptoStream nicht wirklich weiter.
Hier habe ich den Source in Delphi mal eingebaut
Delphi-Quellcode:
licenc := TCipher_Rijndael.Create;
licenc.Mode := cmCBCx;
password := THash_MD5.KDFx('0123456789', '0987654321', 2);
licenc.Init(password);
Encoded := licenc.DecodeBinary(sn, TFormat_MIME64);
leider bekomme ich einen ganz anderen Hash zurück als im DOT Net Projekt.
Wer kann mir helfen.