2012-02-24 89 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