每个Web开发人员都应该了解加密的哪些知识?

2022-08-30 12:00:22

我刚刚获得了一个PHP5演出。我不会处理应用程序中涉及超级敏感数据的部分,但我仍然对安全性和加密方法知之甚少。这令人尴尬。我只知道最基本的(不要以明文形式存储密码,不允许用户使用post数据运行代码等)。我需要知道什么才能确保应用程序的安全,在哪里可以学习?


答案 1

了解哈希和加密之间的区别。加密通常是字符串的双向解释。我可以加密我的密码,然后再次将其解密为纯文本。哈希背后的想法是,它们成为一种单向的“加密”。

在我的网站上,我将密码存储为哈希。每当用户登录时,我都会重新哈希他们提供的密码,根据存储在数据库中的哈希进行测试,并批准它们是否匹配。如果他们忘记了密码,我无法向他们发送密码,因为(通常)我无法知道。两个不同的字符串可以转换为相同的哈希值,这使得(通常)无法找出原始字符串是什么。

这是一个很好的问题,可以牢牢地理解并辨别何时使用加密与哈希。


答案 2

知道不要编写自己的加密功能。尽可能使用现有的可信库是最佳选择。避免使用酷炫的前沿技术,这些技术缺乏许多成功的程序员时间和用户小时数。要知道不要相信你选择的功能,直到你自己彻底测试了它,第一人称。及时了解新的发展,这些发展可能会在一夜之间使您选择的功能过时。要知道,仅仅因为您使用了当今最好的加密技术,如果您将密钥留在表格上,您就不会保护任何东西(例如,明文不在缓存中或存储在同一数据库中的另一个表格中,私钥不会保持打开状态)


推荐