使用CryptoJS加密和解密数据

问题描述 投票:0回答:0

我正在开发一个调用 Java Rest API 的 PHP 应用程序。 有效负载必须使用 CryptoJS 进行加密和解密,如下所示:

function encrypt(data, keyString) {
    var IV = CryptoJS.lib.WordArray.random(16);
    // finds the SHA-256 hash for the keyString
    var Key = CryptoJS.SHA256(keyString);
    var val = CryptoJS.enc.Utf8.parse(JSON.stringify(data));
    var encrypted = CryptoJS.AES.encrypt(val, Key, { iv: IV }).toString();
    var b64 = CryptoJS.enc.Base64.parse(encrypted).toString(CryptoJS.enc.Hex);

    return {
        "encrypted": b64,
        "IV": IV.toString()
    };
}

function decrypt(data , IV, keyString) {
    var IV = CryptoJS.enc.Hex.parse(IV);
    // finds the SHA-256 hash for the keyString
    var Key = CryptoJS.SHA256(keyString);
    data = CryptoJS.enc.Hex.parse(data).toString(CryptoJS.enc.Base64);
    var cipherParams = CryptoJS.lib.CipherParams.create({
        ciphertext: CryptoJS.enc.Base64.parse(data)
    });
    var decryptedFromText = CryptoJS.AES.decrypt(cipherParams, Key, { iv: IV });

    return decryptedFromText.toString(CryptoJS.enc.Utf8);
}

问题是我需要它们作为 PHP 而不是 JS。 谁能帮我用 PHP 重写这些函数? 有一个用 PHP 编写的库,但是,这不是我需要的。

javascript php encryption cryptojs
© www.soinside.com 2019 - 2024. All rights reserved.