使用javascript和get以加密形式传递数据


pass data in encrypt form using javascript and get in php

我正在做一个项目,用户可以在其中搜索任何内容。我想在URL中以加密形式显示搜索数据。我创建了一个表单,当用户提交它时,我将用户发送到结果页面,我在表单操作和表单方法中定义了结果页面。

<form is="search" action="example/search.php" method="get">
<input type="text" placeholder="Search..." name="key" id="header-search" />
<button class="submit"></button>
</form>

我需要在URL中显示加密数据。如果我使用java脚本加密数据,那么我就无法使用PHP获取数据。如何在URL中以加密形式发送数据,并在其他页面中使用php。

当您在其中发送参数时,您可以使用ajax来实现该过程。在提交表单之前,创建一个ajax请求并在其中发送文本字段数据。使用以下变量加密

$cipher = "AES-128-CTR";
$key = "12345";
$opt = 0;
$iv_key = '123456789';
$iv_length = openssl_cipher_iv_length($cipher);

使用openssl_encrypt function加密字符串,并作为ajax响应返回

$encryption = openssl_encrypt($string, $cipher, $key, $opt, $iv_key);
return $encryption;

现在将此字符串存储在一个隐藏字段中并以表单形式发送。在下一页中,使用以下代码decrypt字符串并从数据库获取数据。

$decryption = openssl_decrypt($string, $cipher, $key, $opt, $iv_key);

确保$cipher, $key, $opt, $iv_key应该具有相同的值。

你指的是url模糊处理吗?如果是这样,您可以在客户端对字符串进行base64编码,并在服务器端对其进行解码。

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding了解更多详细信息。

一个例子:

//client side
var encodedData = window.btoa("Hello, world"); // encode a string

//Server side (php)
$decodedData= base64_decode($encodedData)