drgd73844 2015-10-22 20:43
浏览 86

在PHP中加密字符串,其中输出是URL安全的

I have a requirement where I need to move a string from one place to another via GET. e.g. example.com?string=ENCRYPTED_STRING

Is there a algorithm or some other method to encrypt the string so it is URL safe?

By that I mean it will not have characters like = or & ...

I have tried openssl with AES-256-CBC but no luck.

The data is not overly very sensitive but I would prefer to obfuscate it in someway.

  • 写回答

2条回答 默认 最新

  • duankuaiwang2706 2015-10-22 21:09
    关注

    The code below allow you to encrypt (alpha/num) and decrypt a string. But you need Mcrypt php module installed to make it run.

    static public function encrypt($text){
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);                                                                           
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $key = "useasuperkey";
    
        return (bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv)));
    }
    
    static public function decrypt($text){
        $len = strlen($text);  
        $text = pack("H" . $len, $text);
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);                                                                           
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $key = "useasuperkey";
    
        return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么