![]() |
1
8
我不确定使用MySQL内置加密是否是解决您问题的最佳方案。 PHP的 M_CRYPT 软件包被认为是相当好的,它让您可以灵活地选择最适合您需要的算法。
将密钥存储在其他服务器上有一个很大的优势:密钥与加密数据不在同一台机器上
*)
然而,将钥匙从一台机器传送到另一台机器会打开一个需要保护的全新领域。可能涉及更多的密钥和更多的加密层,从而增加出错的机会。 *)
可能的解决办法
这种方法的优点是:
然而:
|
![]() |
2
4
我可能会将其存储在一个不可通过web访问的目录中的文件中,并尽可能使用文件系统权限锁定。
进行解密时,将密钥读入一个干净初始化的变量,进行解密,然后覆盖密钥变量(比如用一个x字符串)并取消设置该变量。这听起来可能有点偏执,但如果你尽量减少键在内存中的时间,并将其与PHP脚本周围的所有其他变量隔离开来,那么你就不会有任何改变 较少的 如果您和另外一个人是唯一可以物理访问机器的人,那么这可能很好。如果有人破门而入,偷走了盒子,那么,他们已经得到了你所有的数据,所以游戏结束。 |
![]() |
3
1
您似乎正在考虑使用“特定于列”的密钥来与“AES_ENCRYPT”和“AES_DECRYPT”一起使用。正如评论员所说,这是一个坏主意,因为任何入侵都可以访问所有数据。 如果您使用“用户提供的”密码(含/不含salt),您将更加安全。 也就是说,如果加密密钥只能由使用它的应用程序读取,那么您可能“足够好”。如果机器被入侵,他们只需一把钥匙就能更快地获取数据。 |
![]() |
Michael · 某些Windows客户端上的命名管道安全问题 12 月前 |
![]() |
adamency · 是否可以从Go二进制文件的源代码中检索字符串? 1 年前 |
![]() |
AlboSimo · PayPal Api密钥安全 1 年前 |