故事是这样的:
我必须将一些机密信息从一个脚本传递到另一个脚本。在第一个脚本中,我需要先加密数据,然后再加密have to将加密数据附加到 GET 请求中并将其发送到另一个脚本。 URL 看起来像这样:
http://mydomain.com/mysecondscript.php?secret={encrypted stuff}
我目前的加密方法是基于base64。这种方法的问题是,如果我有很多东西要加密,加密的结果可能会变得很长。如果它的长度超过 255 个字符左右,第二个脚本将无法解密它,因为字符串将被截断。
所以我正在寻找一种更好的加密方法,可以控制加密结果的长度。
DANGER!
Base64 是NOT一种加密形式,而是编码。 Base64 编码的字符串易于识别且易于解码。 Base64 用于对数据进行编码,以便它们可以通过非二进制安全介质(例如 URL 和电子邮件)安全地传输,但它们不会隐藏数据本身。
您需要做的是使用 AES 加密字符串(请参阅 PHP 的mcrypt http://php.net/manual/en/book.mcrypt.php),然后进行base64编码。这当然不能解决你的长度问题。这个问题很模糊,但你可以做的是:
- 使用 POST 而不是 GET。
- 将数据存储在两个脚本都可以访问的数据库或文件中。然后生成一种标识符并将其与 URL 一起发送。接收脚本可以使用该标识符来检索数据。作为额外的好处,您不必通过 URL 发送分类数据。
EDIT:现在我更仔细地阅读了您的问题,似乎两个脚本都位于同一服务器上。在这种情况下,没有任何理由通过 HTTP 传递此数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)