我想加密数据库中的用户名、电子邮件和密码字段并加密静态用户文件。我怎样才能做到这一点?我知道诸如 Gazzang 之类的软件,由于没有公布成本,我只能估计它每年将花费数千美元。
是否有任何替代解决方案我可以自己构建或使用在服务器上运行的可以加密字段和用户文件的软件?
不确定它是否有所作为,但我使用的是 PHP/MYSQL 并且我有云服务器。
我想加密数据库中的用户名、电子邮件和密码字段并加密静态用户文件。我怎样才能做到这一点?我知道诸如 Gazzang 之类的软件,由于没有公布成本,我只能估计它每年将花费数千美元。
是否有任何替代解决方案我可以自己构建或使用在服务器上运行的可以加密字段和用户文件的软件?
不确定它是否有所作为,但我使用的是 PHP/MYSQL 并且我有云服务器。
mysql 服务器上最简单的加密方法是使用随机生成的密码短语aes_encrypt() 。
您不应该加密用户密码,密码必须始终经过哈希处理。密码应使用 bcrypt 或 sha256 存储。
您必须解密的数据的加密:使用变量来设置密钥。
您只需要验证的数据的盐渍哈希(密码)。
盐渍非常重要。这一点我怎么强调都不过分。使用相对便宜的设备(大约 2k)我可以在大多数算法中每秒运行 100m 哈希,更高端的设备(~6k - 主要用于工业目的)我能够达到每秒超过 12 亿哈希(sha, md5、md4 等)如果你的攻击者有一个 FPGA 场,每秒数万亿次猜测并不遥远。您可以在此处查看统计信息
使用 John 和未优化的代码,Linkedin 列表(不加盐的哈希)在不到 24 小时内使用默认的修改规则猜到了 @ ~70%... 给你的哈希加盐。当您的数据库暴露时,这将使您有时间通知您的用户更改他们的密码,而不会(必然)立即损害他们的访问权限。
如果您不需要它,请不要存储它。
我知道这不是直接的问题,但说真的,它同样重要。假设您的数据库在某个时候受到损害,如果它没有数据,则无法公开。
最后:对数据库使用最佳实践安全性:验证您的数据,使用存储过程来处理输入,以及监控和审核您的数据库访问日志。