【发布时间】:2021-04-02 00:19:14
【问题描述】:
我有一些关于 PHP 的代码,这些代码无法编辑,并且数据库中充满了这种方式的加密消息。
$key = '297796CCB81D2553B07B379D78D87618'
return $encrypted = openssl_encrypt($data, 'AES-128-ECB', $key);
我必须编写一些 JS 代码来加密和解密这些消息。我为此目的使用 CryptoJS。
const key = '297796CCB81D2553B07B379D78D87618'
let k = CryptoJS.enc.Base64.parse(key)
let cypher = CryptoJS.AES.encrypt(this.text, k, {mode: CryptoJS.mode.ECB})
this.cypher = CryptoJS.enc.Base64.stringify(cypher.ciphertext)
我无法让这些代码产生相同的结果。对于“测试”字符串,我得到以下结果:JS: H1AG6j/i/iSqifSNCG5JKw==,PHP: Nqrur4UMEicEMwJC39qq0A==
我正在尝试解决此问题 3 天,但我找不到问题所在。 我唯一可以编辑的代码是 JS。
【问题讨论】:
-
您的密钥不同(PHP 以 7618 结尾,JS 以 D876 结尾)。如果这确实是您的测试脚本,那么结果预计会有所不同。否则你可能想更新你的问题。
-
我复制的密码无效。键从一开始就相同,但我检查了代码。键相同,结果不同。
标签: javascript php openssl cryptojs