如何在PHP中$ _GET数据进行加密?(How to encrypt the $_GET data

2019-07-29 06:28发布

在PHP中,我们使用$ _GET传递变量在url中,我想通过变量,包括我想成为匿名用户的ID,所以事情做,可以传递之前,将加密变量和变量一旦采取在页面上可以解密得到原始变量的值。

对于例如:

传递变量的$ id = 10之前;

通过在URL中的$ ID = dasfgjg;

当从URL截取和解密的$ id = 10;

如何才能实现这一目标?

Answer 1:

如果你打算加密您可以使用RC4加密算法/在服务器端只解密

http://www.phpkode.com/source/s/rc4-cipher-0-1/rc4-cipher-0-1/RC4.php

$my_secret_key = '3klmsd94mms.saeo44o!!3le';

if( isset($_GET['p']) ) {
  $id = RC4::decrypt($my_secret_key, $_GET['p']);
  // ....
}
else {
  echo '<a href="/?p='.RC4::encrypt($my_secret_key, 12).'">Go to the page</a>';
}


Answer 2:

刚才生成的随机字符串(确保它是唯一的)数据库中的每个记录,并将其保存在那里。 然后使用此作为标识符。 需要注意的是,当然这无关加密。



Answer 3:

一个快速和肮脏的方式来实现这一目标(每个请求)

  • 在客户端,创建像“XX:10:YY”一个字符串,其中XX和YY是由PF串随机characetrs
  • 在客户端,创建用户腌制/哈希密码的哈希盐渍
  • 使用此哈希作为密钥,并且从第一发子弹是明文与如crypt.js加密字符串
  • 在请求发送加密的字符串和盐
  • 在服务器上使用transmited盐和用户盐腌/哈希密码来恢复键
  • 在服务器上使用的mcrypt或朋友对字符串进行解密
  • 在服务器上使用标准的PHP文本处理功能从所解密的字符串恢复有效负载


文章来源: How to encrypt the $_GET data in php?