【问题标题】:How can I encrypt/decrypt PHP GET parameters?如何加密/解密 PHP GET 参数?
【发布时间】:2011-10-19 12:45:03
【问题描述】:

我有一个常规的请求,例如:

http://myserver.com/index.php?var1=85842.23&var2=212.235&name=Teddie&valid=1

我希望将那些 $_GET 参数加密为类似(不是真实的,只是一个示例:)):

http://myserver.com/index.php?eParam=ks883d48223v2czozoz227272j2nn2dn2d2du3dh4hn4f4f4f4h3383xh8383s38s3j83sj8s3j92h2s89hs387h2s87hs287h2s87h2ui2c3iuhc287z9m2389f

当然,我需要在每一侧都有一个内置密钥,它能够解密该信息。 是否有任何功能可以实现这一点? 我不关心客户端,因为它将是一个正在运行的应用程序,而不是一个网页或任何容易被逆向工程的东西。

谢谢!

【问题讨论】:

    标签: php encryption get encode


    【解决方案1】:

    只需使用 SSL(即 HTTPS 而不是纯 HTTP)。然后除了 DNS 之外的所有内容都会查找域,并且与域解析到的 ip 地址建立连接将被加密。

    【讨论】:

    • 此答案可能适用于您的情况,但忽略了您可能还希望保护数据不被写入纯文本日志文件的事实。
    • 通过 POST 本来会很棒,但我想我必须在这里获取。
    • 它是 POST 还是 GET 都没有关系(确实如此,但不是在这个问题的上下文中)。 HTTP请求是加密的,所以查询字符串不会明文传输。
    • 如果您不能信任服务器,请不要记录查询字符串。
    • @Quentin:我同意,但他可能无法控制。我也会选择 SSL+POST。
    【解决方案2】:

    实际上你可以这样做......你可以有一个加密/解密函数,包括给定参数的时间到期。我有一个脚本可以为我的网络系统执行此操作。而且你必须自己构建它,我不能将我的安全脚本公开......但这是这个想法:

    1. 查找或构建加密/解密函数
    2. 为函数添加日期和时间检查,以便加密字符串过期
    3. 使用该函数加密传出字符串
    4. 加密后,如果你使用的是PHP,对加密后的字符串进行urlencode(),以确保所有特殊字符在对方收到后仍然存在。
    5. 在另一端,执行 urldecode(),然后解密,然后传递值。

    【讨论】:

    • 请在您的答案中添加更多详细信息。可能是一个可以阐明该过程的示例。
    猜你喜欢
    • 2018-04-21
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2011-12-06
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多