node js 加密改成php方法实现,有大佬能帮忙看看吗?

发布于 2022-09-13 00:10:26 字数 736 浏览 22 评论 0

const crypto = require("crypto");

class AESCipher {
    constructor(key) {
        const hash = crypto.createHash('sha256');
        hash.update(key);
        this.key = hash.digest();
    }

    decrypt(encrypt) {
        const encryptBuffer = Buffer.from(encrypt, 'base64');
        const decipher = crypto.createDecipheriv('aes-256-cbc', this.key, encryptBuffer.slice(0, 16));
        let decrypted = decipher.update(encryptBuffer.slice(16).toString('hex'), 'hex', 'utf8');
        decrypted += decipher.final('utf8');
        return decrypted;
    }
}

encrypt = "P37w+VZImNgPEO1RBhJ6RtKl7n6zymIbEG1pReEzghk="
cipher = new AESCipher("test key")
console.log(cipher.decrypt(encrypt))
// hello world

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

方觉久 2022-09-20 00:10:26
<?php

function decrypt($encrypt, $key)
{
    $binKey = hash('sha256', $key, true);

    $binEncrypt = base64_decode($encrypt);
    $binIV      = substr($binEncrypt, 0, 16);

    $data = openssl_decrypt(substr($binEncrypt, 16), 'aes-256-cbc', $binKey, OPENSSL_RAW_DATA, $binIV);

    return $data;
}

$encrypt = "P37w+VZImNgPEO1RBhJ6RtKl7n6zymIbEG1pReEzghk=";
$text    = decrypt($encrypt, 'test key');

echo('[encrypt] '.$encrypt.PHP_EOL);
echo('[   text] '.$text.PHP_EOL);

[encrypt] P37w+VZImNgPEO1RBhJ6RtKl7n6zymIbEG1pReEzghk=
[ text] hello world

撩起发的微风 2022-09-20 00:10:26

楼主有结果吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文