Php 解密的值未正确显示
我正在加密这些值,并在URL的帮助下在另一个页面上发送一个加密值,在那里我正在解密值,但解密值没有正确显示。我得到了像这样的输出 \j3�B��9[rΫ�M�N�B~=��:�n c.。� 你能帮我吗 Index.phpPhp 解密的值未正确显示,php,encryption,Php,Encryption,我正在加密这些值,并在URL的帮助下在另一个页面上发送一个加密值,在那里我正在解密值,但解密值没有正确显示。我得到了像这样的输出 \j3�B��9[rΫ�M�N�B~=��:�n c.。� 你能帮我吗 Index.php $input =5; $encrypted = encryptIt( $input ); echo $encrypted; function encryptIt( $q ) { $cryptKey = 'qJB0rGtIn5UB1xG03efyCp'; $
$input =5;
$encrypted = encryptIt( $input );
echo $encrypted;
function encryptIt( $q ) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qEncoded = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}
echo "<a href='decry.php?user_id=$encrypted'>Click here</a>";
$id=$_GET['user_id'];
$decrypted = decryptIt( $id );
echo $decrypted;
function decryptIt( $q ) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qDecoded = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), "\0");
return( $qDecoded );
}
正如RiggsFolly所说,使用
urlencode()
。
当我尝试使用不同的数字时,它对一些人来说效果很好。而另一些人有上面提到的问题(我猜是出现了=
),但一旦我添加了urlencode()
,它就解决了
$input =5;
$encrypted = encryptIt( $input );
echo $encrypted;
function encryptIt( $q ) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
$qEncoded = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}
echo "<a href='decry.php?user_id=".urlencode($encrypted)."'>Click here</a>";
$input=5;
$encrypted=encryptIt($input);
echo$加密;
函数encryptIt($q){
$cryptKey='qJB0rGtIn5UB1xG03efyCp';
$qEncoded=base64_encode(mcrypt_encrypt(mcrypt_RIJNDAEL_256,md5($cryptKey))、$q,mcrypt_MODE_CBC,md5(md5($cryptKey));
报税表(已编码)(元);;
}
回声“;
警告:mcrypt_encrypt
在PHP7.1感谢您回复RiggsFolly先生时被弃用。还有其他方法吗?因为我可以在同一页上解密值,但不能在另一页上解密。加密和解密工作正常,所以这一定与您如何在查询字符串上传递值有关,如果某些内容值得加密ting,它不属于URL…你应该重新考虑你在做什么。mcrypt扩展已经被抛弃了近十年,而且使用起来也相当复杂。因此,它已经被弃用,取而代之的是OpenSSL,在PHP 7.2中它将从核心中删除并进入PECL。谢谢你回复Razentic先生。它对我有用但是将来会有什么问题吗?我认为将来不会有任何问题(我做了一个快速编辑,因为回看它没有太多意义!)。谢谢你的帮助Razentic先生。