Einzelnen Beitrag anzeigen

Benutzerbild von TheProfi
TheProfi

Registriert seit: 30. Mai 2005
Ort: Emden
42 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Rijndael DEC 5.2 und Cryptography von Visual Studio

  Alt 27. Nov 2014, 12:10
Ihr müßt erst einmal herausbekommen, was eigentlich auf VS-Seite verwendet wird. Also

1. Schlüsselgröße: 128,192, oder 256 Bit

2. Betriebmodus (ECB, CBC, CTR, CFB ...).

3. IV (Initialisierungsvektoren falls nicht ECB)

4. Bei ECB und CBC müssen die Textlängen ein Vielfaches von 16 Bytes sein, sonst wird Padding verwendet (Welches?). Hier ist der Nicht-Standard von DEC: die ganzen 16-Bytesblocks wird CBC verwendet, für den Rest CFB8.

Möglich Lösungen: Da DEC keinen CTR-Modus kann, könntet ihr zB immer CFB8 verwenden. Oder ein PKCS7-Padding auf VS-Seite, das auf DEC-Seite manuell entfernt wird.

Auf jeden Fall müssen die Punkte 1 und 3 geklärt werden.

Edit: Übrigens ist '12345678' (wahrscheinlich) kein gültiger Schlüssel, sondern der wird (??) via Key-Derivation-Function/Hash aus '12345678' erzeugt.
zu 1. 256 Bit
zu 2. ECB

Code:
        public static string EncryptString(string stringToEncrypt,string encryptionKey)
        {
            string encrypted = String.Empty;
            byte[] key = Encoding.Unicode.GetBytes(encryptionKey);

            RijndaelManaged RMCrypto = new RijndaelManaged();      
            RMCrypto.Mode = CipherMode.ECB;
            RMCrypto.KeySize = 256;
            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();
        }
Nachdem wir es auf cmECBx in Delphi umgestellt haben bekommen wir die Meldung: Message length for cmECBx must be a multiple of 16 bytes
Georg Reimann
------------------------------------------------------
Sicher ist nur eines, dass nichts sicher ist...
  Mit Zitat antworten Zitat