1、首先密码进行哈希加密,这是一件特别简单的事情,今天和大家介绍一下,使用的方法有很多,如何做才是正确的,接下来就教大家一些简单的代码可以尝试一下。
2、哈希算法也就是一个仗充哔粞普通的算法单向函数,他可以将任何大小的数据转化为定长的指纹,并且无法被反向计算,只要数据源改动一些,结果便完疙矬嫣歌全不同,这样加密后的密码是无法被破解的,听上去不错,但是需要先注册账号,然后把密码用哈希存储在数据库,当用户登录时,调用加密的密码,经过哈希的用户输入进行对比,哈希值决定用户是否授权登录。
3、当有人尝试普通的登录的时候,系统只是大概提示,不会告诉任何人是用户账号还是密码出错,用于保护密码的哈希函数在数据库中一种存在,有太多办法可以快速地把密码从简单的哈希值中恢复出来,但是也有很多比较容易实现的技术能使攻击者的效率降低。
4、对于每个用户来说,每个密码都是独一无二的,每当有新用户注册或者修改密码的时候,都应该有新的盐值加密,并且这个盐值必须足够长,使用CSPRNG生成一个长度足够的盐值将盐值混入密码,并使用标准的加密哈希函数加密,如SHA256把哈希值和盐值一起存入数据库中对应此用户的那条记录。
5、使用PHP、C#、Java和Ruby代码的加盐哈希来实现,从数据库取出用户的密码哈希值和对应盐值将盐值混入用户输入的密码,并且使用同样的哈希函数进行加密比较上一步的结果和数据库储存的哈希值是否相同,如果相同那么密码正确,反之密码错误。
6、在web程序中,一直实现在服务器端进行哈希加密,这样才能安全系数高,客户端密码哈希并不能代替HTTPS(SSL/TLS)。如果浏览器和服务器之间的连接是不安全的,那么中间人攻击可以修改JavaScript代码,删除加密函数,从而获取用户密码。