网络安全-如何提升密码的安全性

在系统中咱们一般将密码用不可逆的单向加密算法(MD五、SHA、HMAC、CRC)加密后存储起来,可是这样就真的安全了吗?答案是否认的。理论上这些密文都是能够破解的,并且随着如今计算机的运算能力愈来愈强大,破解的成本已经大大下降了,不少6位简单的密码破解时间不超过1分钟。目前常见的破解方法有:算法

数据字典法:这个也是破解网站经常使用的方法,就是它的数据库里记录了不少[密文+明文]的映射表,你输入密文后它去数据库里查找对应的明文。
穷举法:这个就是写一个for循环,列举一个明文将它加密,而后用密文去比较,若是同样就被破解了,破解的时间主要依赖于计算机的运算能力。
碰撞法:2004年,中国山东大学教授王小云证实MD5数字签名算法可能被快速生成“碰撞”。这里解释一下[碰撞]:就是两个不一样的输入得出同样的输出即同一个MD5值,这种状况称为碰撞。因此网上流传的王小云破解了MD5算法的说法是不许确的,她并不能直接将密文破解为明文,而只是找到了更快的算法来获得[碰撞]。数据库

怎么样才能让密码更加安全不被轻易的破解呢,咱们只能根据上述的[破解方法]找应对之策:安全

不要使用简单和有规律的密码:例如12三、admin、admin123等这些,很容易被数据字典法和穷举法破解。越复杂的密码破解的成本就越高。
加盐:在密码学中,是指经过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为[加盐]。这样即便密码被破解了也不是原始内容,下降了获取原始密码的几率,除非别人知道你加盐的规则。例如咱们想要加密 [sunwill] 字符串,加密以后是[9cabe466adf213fcbf72e08cfcc4e8e0],对字符串进行加盐处理获得[sunabcwill],其中[abc]就是盐,加密以后获得[8d576b21176ce6507919d8231a93115e]。
屡次加密:对密码进行屡次加密处理,例如:md5(md5(‘sunwill‘))获得[fc7521f6bb522602b0cd0df7d57d705b],这样会增长破解的复杂度。网站