簡體   English   中英

加密js加密字符串未在php中解密

[英]Crypto js encrypted string not decrypt in php

我正在使用以下js代碼加密字符串

var text = 'should be decrypted!';
var key = 'HighlySecretKeyForJsEncryption!!';
var encrypted = CryptoJS.AES.encrypt(text, key);
console.log(encrypted.toString());

輸出:U2FsdGVkX19vf + s6 / + eB8A + 3iKFCl1A0e + oe0BSbcMVGxb64FL35Q3CB / LZNu4ng

這就是我在php中所做的解密

function decrypt($toDecrypt) {
    $key = "HighlySecretKeyForJsEncryption!!";
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $toDecrypt = base64_decode($toDecrypt);
    return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, substr($toDecrypt, $iv_size), MCRYPT_MODE_CBC, substr($toDecrypt, 0, $iv_size)));
}

但這不起作用,它給了我垃圾字符串。

文檔

var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");

CryptoJS支持AES-128,AES-192和AES-256。 它將根據您傳入的密鑰的大小來選擇變體。如果使用密碼短語,它將生成一個256位密鑰。

解密php端時,您可能需要傳遞常量MCRYPT_RIJNDAEL_256

有關php中AES加密/解密的更多信息: https ://stackoverflow.com/a/3422787/4499267

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM