正确的在thinkphp中使用AES加密解密,并且在URL中去掉特殊字符传送的问题。

本文介绍了在ThinkPHP框架中使用AES加密解密时遇到的特殊字符问题,特别是在URL中传递密文时会被过滤。提供了一种解决方法,确保加密后的字符串能在URL中安全传输。
摘要由CSDN通过智能技术生成

现在网上很多AES加密解密的方法,对于不在URL中传送的确是可以正常的使用,但是如果你使用thinkphp框架或者其它的框架时,如果需要传送密文,这种情况就出现问题了。

1、加密的字符串出现特殊字符

2、这些特殊的字符还要在thinkphp中会过虑掉;

为了解决以上的2个问题,需要做一定的处理,以下的加密代码可以完全解决这个问题,示例如下

<?php
namespace pangu;
class Aes {
    
    public function encrypt($key,$str){
        $size=mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
        $str=$this->pkcs5_pad($str, $size);
        $td=mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
        $iv=mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        mcrypt_generic_init($td, $key, $iv);
        $data=mcrypt_generic($td,$str);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        $data=base64_encode($data);
        $data=str_replace(['=', '+', '/'],['O0O0O', 'o000o'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值