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

标签 php mysql encryption cryptography

我正在使用 MySQL 数据库和 PHP,并且大部分数据库数据已经使用用户提供的密码进行了加密,并且发现了 ircmaxwell 的优秀加密类 here它运行良好。

$e = $crypt->base64_encode(encrypt($string, $password));
$e2 = $crypt2->decrypt(base64_decode($string), $password); 

但是有什么方法可以直接由服务器自动加密和解密数据,而我却不知道密码呢?我只是在集思广益,但也许“全表加密”作为 MySQL 中的一个功能?!!!或者一些以可拒绝的方式混淆的 PHP 特性? :-) 也许是 PHP 中的内置加密/解密?这样只有计算机才能加密/解密数据……即使我完全控制了数据库和 php 代码,我也无法访问它?即使有人用枪指着我的头或在我的指甲下放竹子或其他类似可怕的东西?

我想有一个合理可靠的似是而非的推诿说,“我实际上不知道里面有什么,即使我想知道。”对于无法使用用户提供的密码加密的某些列。似乎我被卡住了,要么创建一个纯字符串,要么用另一个字符串加密该字符串。

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

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

最佳答案

您可以在脚本结束之前取消设置 变量,这样它们在运行后将无法访问。除此之外,除非您查看 SSL,否则服务器不会加密内容,除非您告诉它要加密什么以及如何加密。

也许您还可以考虑在客户端中生成随机生成的解密 key ,告诉用户保存这些 key ,而不是保留它们。这是如何mega.co.nz运作。

评论中的其他相关讨论。

关于php - 使用 PHP 在 MySQL 数据库中自动加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961483/

相关文章:

php - WordPress 主题 "ERROR: The theme defines itself as its parent theme. Please check the Template header."

php - 将点击跳过图库更改为滑动照片库?

php - PHP 中 date_default_timezone_set 的作用范围是什么?

php - PHP mysqli 中的日期、时间、TimpStamp 格式

mysql - 防止两个 "bots"在同一数据库行上工作的最佳方法?

MySQL CBC 加密和存储初始化向量

使用 ECB 模式的 Java 加密 TwoFish

php - 每次使用不同的搜索和替换执行多个 preg_replace

php - 使用 time() 函数时间戳查询以获取更多行以附加到当前获取的行。 MySQL/PHP

encryption - AES key 推导