首页 > 解决方案 > 将查询字符串参数从 PHP 加密到 IIS

问题描述

我正在使用查询字符串从我的 PHP 应用程序调用 iFrame:

<iframe src="https://www.example.com?account=12345"></iframe>

我需要加密帐户参数,以便查看源的任何人都无法编辑它并查看私人数据。就像是:

<iframe src="https://www.example.com?account=%5gbf&$yhbgvb7943"></iframe>

www.example.com 位于 IIS 服务器上(开发人员愿意与我一起解密他们的结果)。

执行此操作的最佳方法是什么?我在考虑使用 open_ssl。或者那会是矫枉过正吗?

谢谢

标签: phpiisencryption

解决方案


openssl 是一个行业标准,绝对推荐你自己滚动。PHP 实现了调用它的方法。快速示例:

$your_data = "foobar";
$your_key = "secret password";

$cipher = "aes-256-cbc";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cipher));

echo "plain: $your_data" . PHP_EOL;

$encrypted = openssl_encrypt($your_data, $cipher, $your_key, 0, $iv);
echo "encrypted: $encrypted" . PHP_EOL;

$decrypted = openssl_decrypt($encrypted, $cipher, $your_key, 0, $iv);
echo "decrypted: $decrypted" . PHP_EOL;
plain: foobar
encrypted: Rm7hAkVmqbUSS+GJLkck2Q==
decrypted: foobar

注意:请务必将 IV 与数据一起传递给对方,并检查其是否为 urlEncoded。


推荐阅读