Ich möchte wissen, ob es einen Unterschied zwischen diesen beiden Verschlüsselungsmethoden gibt? Ich habe diese noch nie benutzt. Mein Client bat mich, die AES-128-Verschlüsselung zu verwenden, aber wenn ich sie google, werden mir "aes-128-cbc", "aes-128-ctr", "aes-256-cbc" oder "aes-256-ctr" angezeigt "also möchte ich wissen, welche ich verwenden soll, wie AES-128?
referenzlink: hier muss ich die Verschlüsselungsmethode senden
3 Dinge:
Ihr Client hat Sie nun aufgefordert, mit AES-128 zu verschlüsseln. Daher sollten Sie die AES-Verschlüsselung mit einer Schlüsselgröße von 128 Bit verwenden. Jeder Modus, den Sie verwenden können, wird von Ihnen bevorzugt. Ich würde CBC vorziehen.
Nur ein kurzer Hinweis zu CBC vs. EZB. Wenn Sie mit ECB verschlüsseln, werden alle 128 Bit (abhängig von der Blockgröße) der Daten mit demselben Schlüssel verschlüsselt. Wenn sich im Klartext Muster befinden, ist der resultierende verschlüsselte Text auch vorhersagbar, unabhängig davon, wie gut der Verschlüsselungsalgorithmus ist.
EZB:
Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
---------------- ---------------- ----------------
Encrypted: bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
Wenn Sie CBC verwenden, wird der erste Block mit dem IV (Initialisierungsvektor) XOR-verknüpft und mit dem Schlüssel verschlüsselt. Der zweite Block wird mit dem ersten Block XOR-verknüpft und dann mit dem Schlüssel, dem dritten mit dem zweiten verschlüsselt. Die resultierende Chiffre ist dann weniger anfällig für die Frequenzanalyse .
Dieses Bild stammt aus Wikimedia Commons, dem Archiv für freie Medien.
Der Nachteil ist, dass Sie die Verschlüsselung/Entschlüsselung nicht parallelisieren können, da Sie das Ergebnis des vorherigen Blocks benötigen, sodass es langsamer sein kann. In der Praxis macht es jedoch keinen wirklichen Unterschied.
Wenn Sie sich den Link ansehen, den Sie mit aufgenommen haben, werden verschiedene Modi akzeptiert, einschließlich CBC. Verwenden Sie AES-128-CBC, es sei denn, Sie haben einen bestimmten Grund, es nicht zu verwenden. Der CBC-Modus ist ein guter Allzweckmodus. Sie müssen auch die Verwendung von Padding (verwenden Sie PKCS # 5 oder PKCS # 7 (je nachdem, was Ihr System erlaubt) verwenden) und einen Initialisierungsvektor (IV) verstehen, damit der CBC-Modus ordnungsgemäß funktioniert.
Verwenden Sie nicht den ECB-Modus, da dies unsicher ist und Informationen verliert.
Hier aes-128-cbc
und aes-128
. aes
steht für Advanced Encryption Service, 128
ist die Bitrate und CBC
ist der Verschlüsselungsmodus.
Dies wird jedoch nur in OPEN SSL
-Formaten angegeben und verwendet. Vor <Open SSL> verwendete PHP mcrypt_encrypt
, der nicht ordnungsgemäß entworfen wurde (ältere Versionen von PHP) .aes-128
kann auch als rijndael
bezeichnet werden, während mcrypt
verwendet wird.