【问题标题】:I want to decrypt the text that in encrypted in php using openssl_encrypt我想解密使用 openssl_encrypt 在 php 中加密的文本
【发布时间】:2019-11-27 03:08:25
【问题描述】:

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 中解码密钥感到很困惑。

【问题讨论】:

    标签: javascript php openssl aes cryptojs


    【解决方案1】:

    我自己解决了我的问题。问题是关键。如果您使用 CryptoJS.enc.Base64.parse(key) 解析密钥,它将被解决。 Base64.parse 会将密钥转换为 CryptoJS 接受的字数组。

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      相关资源
      最近更新 更多