如何编码/加密要通过URL参数传输的秘密数据?

Sha*_*awn 4 php encryption

这是故事:

我必须将一些机密信息从一个脚本传递到另一个脚本.在第一个脚本中,我需要先加密数据,然后我必须将加密数据附加到GET请求中并将其发送到另一个脚本.URL将如下所示:

http://mydomain.com/mysecondscript.php?secret={encrypted stuff}
Run Code Online (Sandbox Code Playgroud)

我目前的加密方法基于base64.这种方法的问题是,如果我有很多要加密的东西,加密的结果可能会变得很长.如果它超过255个字符左右,则第二个脚本将无法解密它,因为字符串将被切断.

所以我正在寻找一种更好的加密方法,可以控制加密结果的长度.

Nul*_*ion 16

危险!

Base64 不是加密形式,而是编码.Base64编码的字符串易于识别,并且易于解码.Base64用于对数据进行编码,以便可以跨非二进制安全介质(例如URL和电子邮件)安全地传输数据,但它们不会隐藏数据本身.

您需要做的是使用AES加密字符串(请参阅PHP的mcrypt),然后对其进行base64编码.这当然不会解决您的长度问题.问题很模糊,但你能做的是:

  • 使用POST而不是GET.
  • 将数据存储在两个脚本都可以访问的数据库或文件中.然后只生成一种标识符并使​​用URL发送它.接收脚本可以使用此标识符来检索数据.作为额外的奖励,您不必使用URL发送分类数据.

编辑:现在我更仔细地阅读你的问题,似乎两个脚本都坐在同一台服务器上.在这种情况下,没有理由通过HTTP传递此数据.