2012-02-24 95 views
1

可能重複:
Best way to use PHP to encrypt and decrypt?PHP雙向crypting

我在雙向的PHP crypting技術是新的。我已經使用sha512作爲一種哈希方式,但現在我真的需要兩種方式的ecryption。我不知道從哪裏開始。你能告訴我哪種方法我必須使用最安全的方法嗎?你能給我簡單的「你好世界」的例子嗎?

編輯

謝謝所有的答案,我發現這個Mcrypt是我的問題的關鍵,但我可以用很多像MCRYPT_3DES,MCRYPT_CAST_128,MCRYPT_CAST_256方法....所以什麼使用?

+1

SHA512未加密... – 2012-02-24 17:59:01

+1

嘗試搜索。有很多關於如何使用PHP進行加密的信息。 [在這裏](http://stackoverflow.com/questions/5089841/php-2-way-encryption-i-need-to-store-passwords-that-c​​an-be-retrieved/5093422#5093422),[在PHP.Net](http://php.net/manual/en/book.mcrypt.php),[另一個SO](http://stackoverflow.com/questions/1289061/best-way-to-use -php-to-encrypt-and-decrypt) – ircmaxell 2012-02-24 18:00:16

+0

http://php.net/mcrypt – netcoder 2012-02-24 18:00:24

回答

0

你可以嘗試使用你需要的openssl函數:openssl_public_encryptopenssl_private_decrypt

要使用它們,您必須生成一個RSA公鑰/私鑰對。

+0

謝謝您的回答,但您是否也可以建議1或2種其他方法,以便有選擇機會 – Irakli 2012-02-24 18:05:38

0

不要混淆散列與加密。

你可以使用mcrypt-expansion,其有據可查的,而且他們有一些很好的例子,像這樣的:

$key = "this is a secret key"; 
$input = "This is a top secrep message."; 

$td = mcrypt_module_open('tripledes', '', 'ecb', ''); 
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
mcrypt_generic_init($td, $key, $iv); 
$encrypted_data = mcrypt_generic($td, $input); 
mcrypt_generic_deinit($td); 
mcrypt_module_close($td); 

還有很多其他的方法在那裏,openssl就是其中之一。

+0

我可以使用很多方法,如MCRYPT_3DES,MCRYPT_CAST_128,MCRYPT_CAST_256 ....那麼要使用什麼? – Irakli 2012-02-24 18:10:28

+0

無論你想要什麼。該庫支持一些算法,請參閱此處瞭解更多詳細信息:http://mcrypt.hellug.gr/#_mcrypt。目前它似乎支持BLOWFISH,TWOFISH,DES,TripleDES,3-Way,SAFER,LOKI97,GOST,RC2,MARS,RIJNDAEL,SERPENT,CAST,ARCFOUR和WAKE。我不是這個話題的專家,所以我不確定哪一個比其他人更安全(我建議不要使用DES)。 – Bjoern 2012-02-24 19:09:25

0

你可以利用的mcrypt的附帶PHP

這是PHP Manual對這個Mcrypt(手動始終是最好的開始)

既然你問了一個簡單的你好世界類型。看看這裏link

+0

是的手冊有關mCrypt,但與mCrypt,我認爲,我可以使用很多方法,如MCRYPT_3DES,MCRYPT_CAST_128,MCRYPT_CAST_256 ....所以使用什麼? – Irakli 2012-02-24 18:08:14