1
我正在使用jQuery AJAX为PHP文件传递变量。当encypted值经过PHP它的外观differenet从我在HTML DOM通过AJAX传递加密值返回不正确的值
这是它的外观在HTML DOM
<input type="hidden" name="meta" value="�!e�����">
的源代码
$profile_id = 1;
<input type="hidden" name="meta" id="meta" value="<?php echo encrypt($profile_id, ENCRYPTION_KEY); ?>">
我'正在使用此PHP函数生成上述加密值
function encrypt($pure_string, $encryption_key){
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
这是它的外观在JavaScript警报(同上)
�!e�����
这是它的外观在PHP加密版本
�!e�����
这是怪异的一部分时,我明白了,它的外表不同
N~\�7V��咮���a�2�YE�
解密后
的
它应该retured值这是它的PHP端
解密值
$to = $_POST["meta"];
$to = decrypt($to, ENCRYPTION_KEY);
这是ENCRYPTION_KEY
if(!defined('ENCRYPTION_KEY')){
define("ENCRYPTION_KEY", "[email protected]#$%^&*");
}
这是decrption
function decrypt($encrypted_string, $encryption_key){
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
此功能是jQuery的侧
$("form#form-update-status").on('submit', function(){
var form, url, wipit, status;
if($.trim(wipit) == ""){
form = $(this).serializeArray();
url = "ajax/update-status.php";
$.post(url, form, function(data){
$(".button-update-status").html(data);
});
}
return false;
});
你可以发布你如何输出与加密密钥元? –
@DaveChen我编辑了这个问题。我正在将POST元变成本地**变量$到**'$ to = $ _POST [“meta”];' – user3140617
我的意思是,你如何产生''? –