AES加密:PHP與Java互通,解密準確

AES加密:PHP與Java互通
提交表單中含大寫字母解密不正確

AES加密:PHP與Java互通

參考網址:https://www.cnblogs.com/libo0125ok/p/7668026.html

//使用openssl_encrypt方法替代mcrypt_encrypt做AES加密
function openssldecrypt($data) {
   return openssl_decrypt(base64_decode($data), 'AES-128-ECB', 'abcdefgabcdefg12', OPENSSL_RAW_DATA);
}

function mcryptdecrypt($sStr) {
    $decrypted= mcrypt_decrypt(MCRYPT_RIJNDAEL_128,'abcdefgabcdefg12',base64_decode($sStr), MCRYPT_MODE_ECB);
    $dec_s = strlen($decrypted);
    $padding = ord($decrypted[$dec_s-1]);
    $decrypted = substr($decrypted, 0, -$padding);
    return $decrypted;

}

提交表單中含大寫字母解密不正確

使用json方式傳數據;

<script>
    function jiami(){
        var account = encrypt($("#account").val());
        var password = encrypt($("#password").val());
        var backurl = $("#backurl").val();
        var formjson={
            account:account,
            password:password,
            backurl:backurl
        };
        $.ajax({
            url: '<{:U("test/save")}>',
            data:  {
                "formjson" : formjson
            },
            type: 'post',
            success: function (data) {
                $("#baocms_frm")[0].contentWindow.document.write(data)
            }
        });
    }

    /**
     * 加密(需要先加載lib/aes/aes.min.js文件)
     * @param word
     * @returns {*}
     */
    function encrypt(word){
        var key = CryptoJS.enc.Utf8.parse("abcdefgabcdefg12");
        var srcs = CryptoJS.enc.Utf8.parse(word);
        var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
        return encrypted.toString();
    }

    /**
     * 解密
     * @param word
     * @returns {*}
     */
    function decrypt(word){
        var key = CryptoJS.enc.Utf8.parse("abcdefgabcdefg12");
        var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
        return CryptoJS.enc.Utf8.stringify(decrypt).toString();
    }
</script>
    public function save() {
        $formjson = $_POST['formjson'];
        $account = htmlspecialchars($formjson['account']);
        $password = htmlspecialchars( $formjson['password']);

        $decryptedaccount = openssldecrypt($account);
        $decryptedpassword = openssldecrypt($password);
        echo $decryptedaccount;
        echo $decryptedpassword;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章