2012-04-23 37 views
2

我想弄清楚一种方法来编程一个函数,将解除对纯文本url的模糊处理。反向混淆纯文本字符串网址在PHP

事情是这样的:

<input type="hidden" value="[email protected]#jktGAkjgWjkajskd" name="obsfucatedString" /> 

然后在表格的处理我想要去Obsfucate它:

$url = deObfuscate($_POST['obsfucatedString']); 
so $url would become something like: 
$url = 'http://domain.com/filename.zip'; 

是一样的东西,即使是可能的吗?

我想隐藏普通程序员视线的网址。

我想我需要写一些东西,会obsfucate字符串以及

所以

$obsfucatedStringURL = obsfucate('http://domain.com/filename.zip'); 
+0

http://php.net/manual/en/book.mcrypt.php + http://nz.php.net/manual/en/function.base64-encode.php – zerkms 2012-04-23 23:57:49

+0

你是想掩盖URL从一个开发人员的PHP源代码或最终用户?因为您需要浏览器加载畅通无阻的网址,因此您失去了想要实现的功能。如果您只是试图从最终用户身上获得一点安全性的数据存储机制,您是否可以使用PHP会话? – Scuzzy 2012-04-24 00:08:22

回答

5

Encrypt与存储在服务器上的密码的URL(好的算法使用的是AES) ,那么decrypt它就是你需要获取的值。与此有关的问题是加密的字符串不会由可打印的字符组成。要解决此问题,请使用base64_encode()将二进制编码的字符串转换为可在<input>字段中添加为值的可打印字符,然后使用base64_decode()获取服务器上的原始值。

+0

性能方面,当数据不够灵敏时(这不是最好的选择)。 将bas64字符串转换为不可解码的东西,类似strtr会很酷。 strtr的问题是,它是按照连续顺序运行的。将base64字符转换为所有不同的URL安全字符,会很好 – twicejr 2013-11-14 23:04:32

3

编码和反转纯文本字符串的方法很多。一种简单的混淆字符串的方法是使用str_rot13函数进行编码并再次解码(注意:这不会给你任何加密安全)。我建议使用AES加密,使用存储在服务器上的秘密进行加密和解密。以下线程的答案定义了可用于加密/解密的函数。

PHP AES encrypt/decrypt

,可能是值得考虑与模糊的另一种方法是将URL服务器端存储的用户会话的一部分,或保存在一个数据库。然后,不要发送混淆的字符串,而是使用执行查找的密钥来检索URL。