2012-04-23 72 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。