Einzelnen Beitrag anzeigen

Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

DEC 5.2 mit Vector deccipher Umbau von DOT net auf Delphi

  Alt 17. Okt 2012, 13:01
Delphi-Version: 2009
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.
  Mit Zitat antworten Zitat