加密客户端/解密服务器端JS - PHP

时间:2017-04-19 05:27:43

标签: javascript php encryption cryptography

我尝试使用js进行客户端加密,使用php进行服务器端解密,只进行了几个小时的调试,发现即使他们使用相同的加密方法,他们也无法匹配,无论大小等等

有许多可用的加密js库,不推荐使用php中的crypt(),mcrypt和函数。

我尝试寻找一对(例如AES.js和AES.php),但没有一个成功

您能建议使用哪种好的加密方法吗?如何实现它们。因为我相信有一把钥匙或其他东西,我也听说过静脉注射,我甚至都不知道。

jQuery(使用简单的sha256)

git log

我想尝试在php中解密它,但不推荐使用mcrypt_decrypt。有这个openssl,我不知道如何使用。

1 个答案:

答案 0 :(得分:-1)

您可以尝试使用此代码在PHP中解密

$Pass = "Passwort";
$Clear = "Klartext";        

$crypted = fnEncrypt($Clear, $Pass);
echo "Encrypred: ".$crypted."</br>";

$newClear = fnDecrypt($crypted, $Pass);
echo "Decrypred: ".$newClear."</br>";        

function fnEncrypt($sValue, $sSecretKey)
{
    return rtrim(
        base64_encode(
            mcrypt_encrypt(
                MCRYPT_RIJNDAEL_256,
                $sSecretKey, $sValue, 
                MCRYPT_MODE_ECB, 
                mcrypt_create_iv(
                    mcrypt_get_iv_size(
                        MCRYPT_RIJNDAEL_256, 
                        MCRYPT_MODE_ECB
                    ), 
                    MCRYPT_RAND)
                )
            ), "\0"
        );
}

function fnDecrypt($sValue, $sSecretKey)
{
    return rtrim(
        mcrypt_decrypt(
            MCRYPT_RIJNDAEL_256, 
            $sSecretKey, 
            base64_decode($sValue), 
            MCRYPT_MODE_ECB,
            mcrypt_create_iv(
                mcrypt_get_iv_size(
                    MCRYPT_RIJNDAEL_256,
                    MCRYPT_MODE_ECB
                ), 
                MCRYPT_RAND
            )
        ), "\0"
    );
}

我没有检查过,但你可以试试。