首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >偶然的openssl_decrypt错误:“base64无法解码输入”

偶然的openssl_decrypt错误:“base64无法解码输入”
EN

Stack Overflow用户
提问于 2015-10-14 09:33:30
回答 2查看 4.9K关注 0票数 1

我有两个PHP页面,其中第1页对字符串onLoad进行加密,加密的字符串将通过URL传递到第2页。

有时(大约8页中有1页)无法解密字符串,并给出以下错误消息:failed to base64 decode the input ...

下面是我所用的:

  • 加密方法:AES-128-CBC
  • iv:openssl_random_pseudo_bytes(16);

以下是一些附加信息:

  • PHP 5.4.16
  • nginx 1.8.0
  • centos 7

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-14 11:38:40

若要在URL中包含字符串,需要对其进行URL编码。对于基本64,您需要用=替换%3D,但不要这样做。相反,当您在URL中包含字符串时,请使用适当的URL编码函数

票数 3
EN

Stack Overflow用户

发布于 2015-10-15 12:12:55

感谢“Simba& @David Schwartz”的评论,下面是应该做的事情:

在第1页:

代码语言:javascript
复制
 - encrypt the string via openssl_encrypt();
 - encode the encrypted string for sending via url by rawurlencode();
 - concatenate those "encrypted+encoded" strings and send via url;

在第2页:

代码语言:javascript
复制
 - take the var out from $_GET;
 - decode the var via rawurldecode();
 - decrypt the decoded var via openssl_decrypt();

现在工作正常~

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33127515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档