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 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法