php - 将查询字符串参数从 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。或者那会是矫枉过正吗?
谢谢
解决方案
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。
推荐阅读
- python-3.x - 如何使用 Django Querset API 连接两个子表?
- python - 我在这里做错了什么?parse_item_page 不适合我
- c++ - 如何在与用户给定前缀匹配的字符串向量中找到第一个单词?
- r - DT::datatable 不会在 HTML R 降价报告中呈现结果
- javascript - 在 React 中创建一个字段或所有字段
- r - 从 Shiny 中的一行动态数据表中渲染多个图像
- c# - Tesseract.NET SDK 弄乱了一些数字
- html - 随着屏幕尺寸变小,如何每行显示 3 个 div
- python - 当 python 脚本崩溃时,csv writer 留下空的输出文件
- wpf - UWP BarcodeScanner DataRecieved 事件未在 WPF 应用程序中触发