如何将Url变量保护为一个不可读的变量

时间:2013-10-26 09:59:27

标签: php encryption qr-code

情况:

我需要创建QR码,其中包含登录名,密码和其他2个信息A和B.

这些QR码是用于在线验证的非公开检查卡。

我的老板不想留下密码。显示qr代码并且您已登录

问题:

我不想复制和半容易阅读qr代码以包含纯文本 www.example.com/login/?name=abc&password=def&A=ghi&B=jkl

我更喜欢解决方案 www.example.com/login2/?var=dsldpjfeepfjwefpejwfp

问题:

是否有一种很好的方法可以将不同的变量压缩为一个不可读的变量,然后在服务器端将其解压缩?我尝试了一些加密,但是它们会产生不是url友好的二进制数据(在大多数情况下它确实很长)。

提示:

我不需要完整的加密和安全性。我只是不想显示简单的密码。 我正在使用PHP,无法安装新的php模块,但脚本没问题。

2 个答案:

答案 0 :(得分:1)

您可以使用md5(),并在登录时检查是否:

m5d($password . $salt) == $_GET['password'];

答案 1 :(得分:0)

如果您不想加密它,您有两种选择。

Base64 - 会创建类似dXNlcm5hbWV8cGFzc3dvcmR8dmFsdWV8c29tZXRoaW5n

的内容

UUencode - 会创建类似A=7-E<FYA;65\<&%S<W=O<F1\=F%L=65\<V]M971H:6YG

的内容

如果确定最终用户,这两件事都很容易重建。

如果你想让像Base64这样的东西更难以“解密”,你可以先在它上面运行一个基本的替换密码(a = b,b = c等),或者对字符串应用一个已知的shuffle(swap字符1表示2,交换3表示5,等等。

这并不完美,但它会为任何想要对代码中的内容进行逆向工程的人提供一小部分防御。