PHP双向加密[重复]
Posted
技术标签:
【中文标题】PHP双向加密[重复]【英文标题】:PHP two way crypting [duplicate] 【发布时间】: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 中使用多种方法,你能给我推荐一种最安全的方法吗? 【参考方案1】:您可以尝试使用 openssl 函数来满足您的需求:openssl_public_encrypt 和 openssl_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.... 那该用什么呢?以上是关于PHP双向加密[重复]的主要内容,如果未能解决你的问题,请参考以下文章