Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在MySQL数据库中自动加密?_Php_Mysql_Encryption_Cryptography - Fatal编程技术网

使用PHP在MySQL数据库中自动加密?

使用PHP在MySQL数据库中自动加密?,php,mysql,encryption,cryptography,Php,Mysql,Encryption,Cryptography,我使用的是MySQL db和PHP,很多db数据已经使用用户提供的密码进行了加密,ircmaxwell的优秀加密类发现它工作得非常好 $e = $crypt->base64_encode(encrypt($string, $password)); $e2 = $crypt2->decrypt(base64_decode($string), $password); 但是有没有什么方法可以直接由服务器自动加密和解密数据,而我甚至不知道密码?我只是想集思广益,但也许“整表加密”是MyS

我使用的是MySQL db和PHP,很多db数据已经使用用户提供的密码进行了加密,ircmaxwell的优秀加密类发现它工作得非常好

$e = $crypt->base64_encode(encrypt($string, $password));
$e2 = $crypt2->decrypt(base64_decode($string), $password); 
但是有没有什么方法可以直接由服务器自动加密和解密数据,而我甚至不知道密码?我只是想集思广益,但也许“整表加密”是MySQL的一个功能?!!!或者某些PHP功能以可重新编译的方式进行模糊处理?:-)可能是PHP中内置的加密/解密?这样只有计算机才能加密/解密数据…即使我完全控制数据库和php代码,我也无法访问它?即使有人用枪指着我的头,或者把竹子放在我的指甲底下,或者其他类似的可怕的东西

对于某些无法使用用户提供的密码进行加密的列,我希望有一个合理的、安全的、貌似可信的否认,即“即使我想知道,我实际上也不知道其中包含什么”。似乎我要么创建一个普通字符串,要么用另一个字符串加密该字符串

似乎我不是唯一一个试图实现这一点的人,但我已经搜索了又搜索,找不到正在讨论的类似应用程序…更不用说解决了。所有页面似乎都假设用户已经知道密码短语,或者试图从加密数据中破解密码短语。第二十二条军规。或者是一只薛定谔猫


任何帮助都将不胜感激。谢谢大家!

您可以
在脚本结束之前取消设置
变量,以便在脚本运行后无法访问这些变量。除此之外,除非您研究SSL,否则服务器不会加密东西,除非您告诉它要加密什么以及如何加密

也许您还可以考虑在客户端中生成随机生成的解密密钥,告诉用户保存这些密钥,而不是保留它们。这就是它的运作方式


评论中的其他相关讨论。

我不太确定您的问题……也许相关@拉兹,我只是编辑了标题,让它更清楚。@ntoskrnl,不,这比我要找的更一般。除非服务器有办法秘密创建和存储公钥和私钥,以加密/解密特定数据位。我不认为这会适用,但同样感谢你的链接!因此,您希望服务器能够在不使用用户提供的密码的情况下对其存储的任何内容进行加密和解密?谢谢您的建议。在这种情况下,用户部件不是问题。但是我需要由服务器对非用户输入进行加密,对于服务器,除了服务器什么都不需要。即使使用SSL,服务器也会有公钥和私钥对,管理员可以使用它们来获得访问权限。在UNSET的情况下,如果它是一个会话,那将非常有效……但这将涉及一个动作发生在一个地方,另一个动作发生在其他地方(不同的计算机,可能不同的国家)。我可以看到它可以很好地进行加密,但是会话结束后,如何解密?除非有人知道密钥,无论是服务器、用户还是管理员,否则无法解密。如果密钥被丢弃,解密将变得非常困难。我不知道有哪种算法允许无密钥解密。但是有没有一种方法可以让服务器知道并存储密钥,而不让用户或管理员知道它是什么?如果我能回答这个问题,那么我可能是金黄色的。我看到了在会话进行期间动态使用它的方法,但没有看到如何在需要时保留它以供日后、周后或月后使用。否。服务器存储的任何东西都可以被一个有足够决心的人访问。好吧……那么这可能就是我要寻找的答案。你想把它作为答案发布吗?(你能回答两次吗?)如果我没有其他创造性的解决方案,我会在一天左右选择它。谢谢你抽出时间,我希望这个问题很有价值。我记下了一些其他人的分数,并且真的很努力地问清楚。