【问题标题】:PHP two way crypting [duplicate]PHP双向加密[重复]
【发布时间】:2012-03-15 04:36:02
【问题描述】:

可能重复:
Best way to use PHP to encrypt and decrypt?

我是 PHP 中双向加密技术的新手。我曾使用 sha512 作为单向哈希,但现在我真的需要双向加密。我不知道从哪里开始。你能告诉我为了最安全我必须使用哪种方法吗?你能给我一个简单的“hello world”例子吗?

已编辑

感谢您的所有回答,我发现 mCrypt 是解决我问题的关键,但我可以使用很多方法,例如 MCRYPT_3DES、MCRYPT_CAST_128、MCRYPT_CAST_256.... 那该用什么?

【问题讨论】:

  • 尝试搜索。有很多关于如何使用 PHP 进行加密的信息。 Here On SO, On PHP.Net, Another On SO
  • sha512 是一种加密系统,我在 PHP 中使用,我用谷歌搜索过,但是 mCrypt 是否默认安装在服务器中? mCrypt 方法中哪种方法最安全?
  • @user1228636:不,不是。这是一个加密哈希函数。请参阅this answer 了解更多信息
  • 我可以在 mCrypt 中使用多种方法,你能给我推荐一种最安全的方法吗?

标签: php encryption


【解决方案1】:

您可以尝试使用 openssl 函数来满足您的需求:openssl_public_encryptopenssl_private_decrypt

要使用它们,您必须自己生成一个 RSA 公钥/私钥对。

【讨论】:

  • 谢谢你的回答,但你能不能再推荐一两个方法,让你有选择的机会
【解决方案2】:

不要将散列与加密混为一谈。

您可以使用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 就是其中之一。

【讨论】:

  • 我可以使用很多方法,例如 MCRYPT_3DES、MCRYPT_CAST_128、MCRYPT_CAST_256.... 那该用什么呢?
  • 随心所欲。该库支持一些算法,请参阅此处了解更多详细信息:mcrypt.hellug.gr/#_mcrypt。目前它似乎支持 BLOWFISH、TWOFISH、DES、TripleDES、3-WAY、SAFER、LOKI97、GOST、RC2、MARS、RIJNDAEL、SERPENT、CAST、ARCFOUR 和 WAKE。我不是该主题的专家,所以我不确定哪个比其他更安全(我建议不要使用 DES)。
【解决方案3】:

你可以使用 PHP 自带的 mcrypt

这是 Mcrypt 的 PHP Manual(手动总是最好的开始)

既然您要求使用简单的 hello-world 类型。看看这里link

【讨论】:

  • 是的,有关于 mCrypt 的手册,但是对于 mCrypt,我认为,我可以使用很多方法,例如 MCRYPT_3DES、MCRYPT_CAST_128、MCRYPT_CAST_256.... 那该用什么呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2011-04-15
  • 2017-06-02
  • 2012-01-16
  • 2012-03-04
  • 2018-11-27
  • 1970-01-01
相关资源
最近更新 更多