Ich habe ein Problem mit der AES-256-CTR-Entschlüsselung mithilfe der React-native-aes-crypto-Bibliothek. Die Entschlüsselung funktioniert auf Android einwandfrei, schlägt jedoch auf iOS mit der Fehlermeldung [Fehler: Entschlüsselung fehlgeschlagen] fehl..
Unten finden Sie den Entschlüsselungscode:
< pre class="lang-js Prettyprint-override">
Code: Select all
import Aes from 'react-native-aes-crypto';
export async function decryptAES_256_CTR(content, key, iv) {
const hexIV = base64ToHex(iv);
const hexKey = base64ToHex(key);
// Log converted values
console.log('Cipher (Base64):', content);
console.log('Key (Hex):', hexKey);
console.log('IV (Hex):', hexIV);
// Decrypt using AES
return await Aes.decrypt(content, hexKey, hexIV, 'aes-256-ctr');
}
function base64ToHex(base64) {
const raw = Buffer.from(base64, 'base64').toString('binary');
let result = '';
for (let i = 0; i < raw.length; i++) {
const hex = raw.charCodeAt(i).toString(16);
result += hex.length === 2 ? hex : '0' + hex;
}
return result.toUpperCase();
}
- Die Entschlüsselung funktioniert gut auf Android, schlägt jedoch auf iOS fehl.< /li>
Die unter iOS ausgelöste Ausnahme:
Code: Select all
(NOBRIDGE) ERROR Error during decryption: [Error: Decrypt failed]
Hier sind die protokollierten Eingaben, wenn der Fehler auftritt:
Code: Select all
Cipher (Base64): /j2YKMCrAsi00nN9lnshKwmIuHSHFteafgS0uWskhr0aw0152WPZPKKmNQthurxOO0rtHl8F84hlVg8YsqTAZ5enGKNk+XLKUi58c8H7rQO/Dedw8W3Pv6iHrZN/hLTBo1T4V8XP5sC+FP7NxHvTXrL8lfQ/dhWPYqZZ8hae12/Pwa1dNgL4B0hQaV0AdQySix9zRwCqrVUJXdoJizBcf3gvKl6+goMg5+KYLP+xJUSPCMiz01ocL2x2tipLxVo9FUjgnR2nj+OlTrZ99sWPTD8JkzRL77ge6G/wbCyzIU//JbR1Q+FfFCE+GcphMReH5dNiTR5g2XSeZo/GiVz+n+62xXMVySAs/0DJt4P62mnvE6LUkkAY/02wzvVb4jzuMP/R5KL2oZjuqPIfVvRrw/vp1Wj5/KwWKg6sBb0/z28StBn1qB5is/J61orO8yam2DowYFIZE+vZY3TCIlmoaFEviVW52yVWWGnWwa9AVxUYXUH4ZlbhBdGbO9+xrRhtx9RiU5cahMDOen/k2upiej7kBpXyPisPhPPQ1+K9no1D7/HBnawf+cs5UbOi28PmiS0h07nQd86dhKECFKOWzSaY1VNC0iAXRrG3BEzTzxgEjJmt/LCyl6YI+XpYX5BEXPq94hNYPgrhfVdK+uesnGsLT1XegIryzQzUWSoITpX9R8TwoO13HS0wv8Nu26Iuw3CJvbsGSEbG0glY4HRHwvwuSGIwvLo4Cc6QVCIqGhiSUITwMfd4KbCmLcO87qMc1fvyeeEE91A/3kNGY1AqubnJBqVu6eA2oxp3xdJ8HDKm8w1m0qF3sc/QZD/SnWPoaFBcAPV0mW0KG6XvyZpe9+CJUN4vPeoYs2iSYEkiy+n3L/yFo6tZIgvECQ856sjVjozTecEcyZhKPbpAfiKfWaub+VqcnoeAHLSpblnOGnaK7vtBGmzyfVw++Y0NrNhgSIO+IML+13puoxafVtb/aQ3t4+5Ey1n8Qw6ni9a/GJf0Ix7DK404mo7Bkb+YFJKeuOhb49QhMLzUGbeq5ieBAToiHH4Uz2j6Xrbmolp89Wa36EiVjAfkC15S9bEZWUm+H82cchfFwoHee/hmlzVfdzwDS6WQWyARxaBE048uESnFBAbA5PROobEXob73Q7rePWK4sCLY5P3Q/zTHQ0iF0xht7Bvlq7XnpjUqKjBL6cXqbW15gBDgvmIdZKUFCxfuWqaP4eRWVMwo++cq/P+ScIYELI0aHNJ7RfT9vWbElndQm1IgYQak56FiZ7ATp/MBii3xudE5UJ+wyNAvh58ye3DUoNT2SPfp+nA6JzTO7nAM6I3Kr79f3bIDfx2LP11xnYU4nyTE5LM0o7EpluG6sdIPcf4XpljKXxinJ5Dzb3P+kcyZm/ENmHnqyaH3pQT9
Key (Hex): 6B76F4CE1907991A845AB7523F8C1834E658CBF63A0214A589A2F4752BD19977
IV (Hex): 6333AFCC5354A014
- Verwenden Sie die Funktion decryptAES_256_CTR auf beiden Android-Geräten und iOS.
- Übergeben Sie denselben Chiffretext, denselben Schlüssel und dieselbe IV.
- Beobachten Sie den Fehler unter iOS.
< /ol>
Fehlerbehebung abgeschlossen - Die Schlüssellänge (32 Bytes für AES-256) und die IV-Länge (16 Bytes) wurden überprüft ).
- Überprüft, ob der Chiffretext im Base64-Format vorliegt.
- Stellt sicher, dass die Bibliothek ordnungsgemäß mit der Pod-Installation verknüpft ist.
Getestet mit verschiedenen Schlüsseln und Chiffretexte.
- Gibt es welche Bekannte Probleme mit der AES-256-CTR-Entschlüsselung unter Verwendung von „react-native-aes-crypto“ unter iOS?
- Könnte dies an Unterschieden in der Art und Weise liegen, wie die Bibliothek die Entschlüsselung zwischen den Plattformen handhabt?
- Gibt es eine bestimmte? Konfiguration für AES-256-CTR unter iOS erforderlich?