gpt4 book ai didi

php - PHP 中字符串的安全密码加密/解密

转载 作者:可可西里 更新时间:2023-11-01 12:36:34 27 4
gpt4 key购买 nike

我想知道在 PHP 中是否存在一种简单但安全的方法来加密字符串(不是密码),密码未存储在服务器上。

我检查过 A reversible password encryption routine for PHP ,但我不确定如果入侵者可以访问服务器和源,它是否足够安全。

我们谈论的是一个自动系统,其中计算机向服务器发送请求,服务器将信息存储在日志中。所以我想我可以在请求 header 中发送加密密码,最好是加密的,但是如果不以某种方式将密码存储在服务器上就很难解密。等等,我想我可能把事情复杂化了一点,但我希望你明白这个想法...这是为了保证信息安全,即使黑客完全控制了服务器。

最佳答案

如果我没理解错的话,您的目标是通过服务器加密的日志。请求以明文形式发送,但您想记录每个用户的访问统计等信息,并且您认为这些数据是 secret 的,因此它应该由服务器加密并由服务器解密,如果必要的。

如果是这样的话,其实并没有太复杂。

  • 生成一个供服务器使用的加密 key (AES 是一个不错的选择)。
  • 您将此 key 存储在一个文件中。
  • 确保应用程序和只有少数选定的人可以访问该位置。最坏的情况是它在您的公共(public)文件中提供,任何人都可以从网络上下载它。所以把它放在远离你的公共(public)资源的文件夹中:)
  • 使用基于密码的加密来加密该文件 e.g. PBKDF2 in RFC 2898 .

然后您会意识到您创建了一个鸡蛋问题 - 该文件再次需要服务器密码才能访问存储在其中的 key 。但这就是诀窍 - 您必须在服务器启动时手动输入 key ,这就是您需要的临时组件。该文件的密码应该是带外信息(例如,放置在物理保险库中)并且不在计算机本身上。

另一种方法(但可能不太安全,因为密码会以某种物理形式存在)是依赖操作系统特定的“密码库”,例如 Windows 的 Isolated Storage .

关于php - PHP 中字符串的安全密码加密/解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com