Php 将用户名和密码存储在加密文件而不是数据库中
所以我知道你会说这很糟糕,但我真的不喜欢使用数据库,因为它既混乱又困难。我还认为在文件中存储用户名和密码是不好的,但是用户名和密码都将使用md5加密。我认为这还不够安全,因为我要把它公之于众。如果你能给我一些建议,告诉我如何做得更好 而且您每分钟只有两次尝试;)强> 以下是我的想法:Php 将用户名和密码存储在加密文件而不是数据库中,php,mysql,webserver,Php,Mysql,Webserver,所以我知道你会说这很糟糕,但我真的不喜欢使用数据库,因为它既混乱又困难。我还认为在文件中存储用户名和密码是不好的,但是用户名和密码都将使用md5加密。我认为这还不够安全,因为我要把它公之于众。如果你能给我一些建议,告诉我如何做得更好 而且您每分钟只有两次尝试;) 以下是我的想法: 另外,如果你能给我举个例子,说明如何以及在Web服务器中存储文件?老实说,我对php不是很在行大多数数据库都可以从开放的web访问,您还必须将数据库密码存储在php文件中。因此,在大多数配置中,使用数据库没有任何安全好
另外,如果你能给我举个例子,说明如何以及在Web服务器中存储文件?老实说,我对php不是很在行大多数数据库都可以从开放的web访问,您还必须将数据库密码存储在php文件中。因此,在大多数配置中,使用数据库没有任何安全好处。这只是一个更舒适的处理 哈希密码总是一个好主意,应该被视为理所当然。md5不是一个安全的算法。考虑使用代替。别忘了在你的哈希文件被偷的时候,插入一个盐串来防止彩虹表攻击 任何双向加密都会使您的系统完全不安全,因为您必须在服务器上保存机密以解密为纯文本,攻击者可以窃取他所需的一切
限制登录尝试当然不是一个坏主意,但是,它并不像您认为的那么重要。主要的弱点是获得对hashfile的读取权限,然后处理脱机bruteforce,最好是使用rainbow表。以下是我的建议。不要使用md5,因为它不安全并且没有使用迭代 您确实必须拥有SSL证书,这样才能防止人们看到密码。没有证书的任何内容大致相当于用户发送原始文本密码。您基本上只是更改了他们的密码 正如zaph所指出的,最好的做法是 论客户
- 将密码发送到web服务器(由证书为您加密)
- 储存盐()
- 使用bcrypt或另一个同样使用salt的安全机制散列密码
- 存储salt和散列salt密码
PDKDF2
、bcrypt
、script
或password\u hash
等算法
密码必须在服务器上散列
在应用程序中使用HTTPS通信密码和pin服务器证书,pin非常重要,因为它可以防止MITM攻击
DB可能不是必需的,这是一个查找时间和磁盘I/O的问题。如果需要性能,您可以从一个简单的fine开始并迁移到DB。“Bob叔叔”Martin推迟了在中使用DB的时间,最终发现只需要一个平面文件解决方案
注意:基本上所有简单的散列方法,如SHA2、SHA3等,都非常快,需要多次迭代以增加计算时间。时间很重要,因此攻击者无法快速尝试哈希。每个密码需要一个随机的(不是唯一的)salt,以避免使用预先计算好的hash的rainbow表。您知道md5是一种方法吗?如。。你不能解密它,你只能加密“猜测”并比较结果。你打算以什么方式公开MD5不是SHA512的一个是加密,它们是散列函数。#我知道这个东西#请#帮助#我#知道互联网有很多信息。#但我真的不喜欢使用数据库,因为它既混乱又困难。#。是的,这很糟糕。很高兴听到这个消息,管理数据库对我来说是件麻烦事。您能告诉我如何存储它们的基本概念吗?使用SSL保护传输。还有免费的证书提供者。强烈建议使用服务器端哈希密码。如图所示,客户端散列将毫无意义。您可以使用csv或任何其他格式来存储数据。有PHP函数来处理这些文件。为了提高安全性,您可以使用.php扩展名。请看一下管理.htaccess。使用SQL管理单个数据库表非常简单。即使是多个表的连接也不难。我鼓励您熟悉简单的数据库命令。有人能解释一下我的答案有什么问题吗?这样我就可以详细说明或澄清,以帮助您了解MD5上的OP?Nice链接。有趣的是,在某些系统上(iPhone就是其中之一),SHA256比MD5快。