后端通常会对用户注册的密码进行加密处理,大多采用MD5+salt+散列。盐是一定长度的随机乱码,每次都是随机生成的(但我写的这个是自定义的,因为规模很小,拿来练手的)
1. MD5
MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它可以接受任意长度的数据作为输入,并产生一个128位(16字节)的散列值(hash value),通常表示为一个32位的十六进制数。MD5的主要特点是不可逆性,即无法从散列值恢复原始数据。然而,需要注意的是,MD5算法因其容易受到碰撞攻击(即存在不同的输入产生相同输出的情况)和彩虹表攻击(利用预先计算好的哈希值来破解密码),现已不再被认为是安全的加密算法,尤其是在密码存储等安全要求较高的场合。
2. 散列(Hashing)
散列是一种将任意长度的输入数据(消息)通过某种算法转换为固定长度输出(散列值)的过程。散列算法通常具有单向性、定长输出和敏感性等特点。在密码学和数据安全领域,散列算法被广泛应用于数据完整性验证、密码存储等领域。通过散列算法,可以确保数据的完整性和一致性,同时保护数据的隐私性。
3. Salt(盐)
在密码学中,Salt(盐)是一个随机生成的字符串,用于与密码一起进行散列处理。加盐的目的是增加密码的复杂性和独特性,从而提高密码存储的安全性。通过为每个密码生成一个唯一的盐值,并将其与密码一起存储在数据库中,即使两个用户使用了相同的密码