AES anahtarı ve IV uzunluğu hakkında bir sorum var.CryptoJS ve anahtar/IV uzunluğu
HerÖncelikle, örneğin, ben uyuşturucuOpenSSL
uzantısı ve openssl_encrypt()
yöntemi kullanıyorum, ben açıkça 256 bit AES bayt olmalıdır için o anahtarı görebilir ve IV uyarı atıyor bayttan farklıysa. Bunu anlayabilirim ve her şey yolunda. Bununla birlikte, CryptoJS
kitaplığındaki anahtar ve IV uzunluğu sinir bozucu olur. Ancak, . Anahtar bayt
var text = "test",
key = "us5N0PxHAWuIgb0/Qc2sh5OdWBbXGady",
iv = "zAvR2NI87bBx746n";
key = CryptoJS.enc.Base64.parse(key);
iv = CryptoJS.enc.Base64.parse(iv);
crypted = CryptoJS.AES.encrypt(text, key, { iv: iv });
IV : Bu işlem bir örnektir. CryptoJS bunu ayrıştırmayı gerektirir ve CryptoJS.enc.Base64.parse()
'dan sonra buna göre 48 ve 24 bayt alırım. Bu değerlerin gerekli 256 bit AES uzunluğuna kesileceğini ve n baytlara daha fazla genişletmenin alakasız olacağını ve sonuçta şifreli metnin aynı olacağını umuyorum.
Ancak bu aslında gerçekleşmiyor. CryptoJS.AES.encrypt() büyük boyutlu anahtar ve bile IV'e geçtiğimde, farklı çıktılar üretiyor. Yani sorum şu, neden? Bu durumda CryptoJS kitaplığı ve OpenSSL arasındaki fark nedir?