在PHP中安全密码加密/解密字符串

前端之家收集整理的这篇文章主要介绍了在PHP中安全密码加密/解密字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否存在一种简单但安全的方法来加密字符串(而不是密码),并在 PHP中使用未存储在服务器上的密码.

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

我们谈论的是一种自动系统,其中计算机向服务器发送请求,该服务器将信息存储在日志中.所以我想我可以在请求标头中发送加密密码,最好是加密,但是如果不在服务器上以某种方式存储密码就很难解密.等等,我想我可能会让事情变得有点复杂,但我希望你明白这一点……即使黑客完全控制服务器,这也意味着保证信息的安全.

如果我理解正确,您的目标是由服务器加密的日志.请求是以简单方式发送的,但是您希望记录类似于每用户访问统计信息等的内容,并且您认为这些数据是保密的,因此它应该由服务器加密并且也可以由服务器解密,如果必要.

如果是这种情况,实际上并不是太复杂.

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

然后您将意识到您创建了一个鸡蛋问题 – 该文件再次需要一个密码,服务器可以访问存储在其中的密钥.但这就是诀窍 – 你必须在手动启动服务器时输入密钥,这就是你需要的短暂组件.该文件的密码应该是带外信息(例如放置在物理保险库中),而不是计算机本身的任何地方.

另一种选择(但可能不太安全,因为密码将以某种物理形式出现)是依赖于特定于操作系统的“密码保险库”,例如Windows’Isolated Storage.

猜你在找的PHP相关文章