duankuaiwang2706 2014-11-11 07:08
浏览 25
已采纳

代码点火器中的加密类可以用来在URL中发送安全数据吗?

I try to send variable through URL. So I use this CI method

$this->encrypt->encode($variable)

And i decode it in the destination. but it doesn't return a correct value. encoded value example :

pWI+q72keVNJtpaZgJdxfwuKtqM2VrNMGhpnknsrf/3dadh0x+lU70h9hgSwFzTWQAEclSfoSZ2J3/UOuLVwgA==

I realize there are too much special characters here such as +/= . And to allow these characters in URI will be unwise.

If that so, is this function can't be implemented to secure data sent through URL?

  • 写回答

2条回答 默认 最新

  • dongxie8906 2014-11-11 08:53
    关注

    The output of encode is Base64 encoded encrypted data. To transmit this you have to encode it in a URI-safe format.

    On the PHP base64 page those functions are proposed to

    $base64 = $this->encrypt->encode($variable);
    $urisafe = strtr($base64, '+/', '-_');
    // or
    $urisafe = strtr($base64, '+/=', '-_,');
    

    Before decodeing you would have to reverse this:

    $base64 = strtr($urisafe, '-_', '+/');
    // or
    $base64 = strtr($urisafe, '-_,', '+/=');
    

    The first suggestion makes it compliant with the RFC 4648 Table 2 for URL safe encodings.

    strtr replaces the offending characters with safe characters. In the above example during the encoding process + is replaced by - and / by _.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历