簡體   English   中英

我想解密使用 openssl_encrypt 在 php 中加密的文本

[英]I want to decrypt the text that in encrypted in php using openssl_encrypt

php加密功能就像

 public function encrypt($value)
    {

        $key ="ATob9yt5i9ajBPaw2GkTm8QfkCG9sUnW9cn0ndZmulK=";
        $iv = chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0)
            . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0)
            . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0);
        $d = base64_decode($key);

        $value = \openssl_encrypt($value,
            $this->cipher, $d  , 0,$iv
        );

        return $value;
    }

我不知道如何在 js 中解密它。 我目前正在使用 CryptoJs。 最令人困惑的部分是 iv 和 base64_decode($key)。

我當前在 js 中的實現如下

function encrypt(value){

    let key = new Buffer("ATob9yt5i9ajBPaw2GkTm8QfkCG9sUnW9cn0ndZmulK=", 'base64');
    let iv = CryptoJS.enc.Utf8.parse(String.fromCharCode(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0));

    let encrypted = CryptoJS.AES.encrypt(value,CryptoJS.enc.Utf8.parse(key.toString()), {
        iv:iv,
        mode: CryptoJS.mode.CBC,
    });
}

我對 iv 密鑰和在 base64 中解碼密鑰感到非常困惑。

問題是關鍵。 如果您使用 CryptoJS.enc.Base64.parse(key) 解析密鑰,它將被解決。 Base64.parse 會將密鑰轉換為 CryptoJS 接受的字數組作為輸入。

暫無
暫無

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

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