2012-02-26 51 views
0

我需要在PHP中進行雙向加密。基本上我想要做的是將一個字符串(例如Marshall)轉換爲奇怪的東西(例如s2323sdavrt44),然後將該字符串(s2323sdavrt44)轉換回明文字符串(Marshall)。php中的雙向加密

我該如何做到這一點?不,我沒有這樣做的密碼或任何東西,爲div id屬性,所以後來我可以拆分它的SQL查詢。

+1

拆呢爲了什麼? SQL查詢? – 2012-02-26 08:48:46

+3

我....不明白這是什麼意思。可能有[更好的解決方案](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – 2012-02-26 08:53:32

+0

@ Col.Shrapnel是 – 2012-02-26 10:25:11

回答

-1
$string === str_rot13(str_rot13($string)); 
+0

rot13是**不**加密。 – 2012-02-26 08:57:14

+0

除非你想使用像打開SSL這樣的東西,這將是一個徹頭徹尾的矯枉過正在這裏,沒有什麼是真正的「加密」 – scibuff 2012-02-26 09:00:41

+0

雖然他確實說在問題中的加密,我相信str_rot13符合「奇怪的東西」合格 – miki 2012-02-26 09:02:00

0

一種方法是使用XOR加密wikipedia。在這種情況下,您將不得不使用「密鑰」對文本進行編碼和解碼。

有PHP的一個例子php.net,看一下例子#2

-2

如果妳想要使用任何加密,然後ü可以使用「的OpenSSL」中,u可以使用任何reverseble encryptiopn算法來加密和解密。我已經在PHP中使用這個,並且工作得很好。

所有的細節都在此頁:http://php.net/manual/en/book.openssl.php

4

試試這個:

$key = 'password to (en/de)crypt'; 
$string = 'string to be encrypted'; 

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); 
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0"); 

var_dump($encrypted); 
var_dump($decrypted); 
+1

供將來參考:使用mcrypt是一個壞主意。它具有安全漏洞和未修補的錯誤,甚至在PHP 7中不推薦使用。 – PoeHaH 2017-09-14 03:09:49