密码加密
在处理密码加密时,不可以使用加密算法,因为所有的加密算法都是可以逆向运算的,也就是说,只要能够获取加密算法的类型、加密过程中使用的参数,就可以逆向运算,根据密文得到原文,所以,加密算法主要用于保证传输过程的数据安全,并不用能于长期存储的密码!
一般,会使用消息摘要算法来实现密码加密!这种算法是根据“消息”计算得到“摘要”的算法,通常用于数据验证,即发送方和接收方的数据是否完全一致,例如下载文件、发送消息等。
消息摘要算法具备几个特点:
- 消息相同,则摘要必然相同;
- 在算法不变的情况下,摘要的长度是固定的;
- 消息不同,则摘要几乎不会相同。
由于一般的消息摘要算法都是128位或以上位数的算法,发生碰撞(不同的消息却对应相同的摘要)的概念非常低,并且,在应用于密码加密时,由于密码的原文的长限是非常有限的,更加降低了发生碰撞的概率,所以,使用消息摘要算法对密码作加密处理是完全没有问题的!
假设用户注册的原始密码是1234
,通过消息摘要算法得到的是81dc9bdb52d04dc20036dbd8313ed055
,就应该把这个摘要结果存储到数据库中,下次,用户尝试登录,如果输入的仍是1234
,基于“消息相同,摘要一定相同”,使用同样的算法,得到的一定是81dc9bdb52d04d