当前位置:首页 >资讯 >加密技术是如何运用在密码中的?


基于密文的最简单的密码存储策略(通常是MD5加密)是我下面画的图片:

密码中如何使用加密技术?

哈希算法是一个单向函数,将任何大小的数据转换为统一长度的密文,不能反向计算。每个不同的数据通过哈希函数转换成不同的结果。

程序中真正比较的是密文哈希值,只有相同的才被授权。不要告诉你是用户名错了还是密码错了。只需给出一个模糊的提示。当攻击者不知道密码时,他们会经历可用的用户名。

并不是所有的哈希函数都是安全的,适合加密。一些哈希函数用于哈希表等数据结构,便于快速搜索。适合加密的哈希函数有类似:SHA256、SHA512、RipeMD等。

最后,简单的哈希加密太容易破解,从目前的情况来看是不安全的。

简单的哈希加密不安全不安全,是因为破解的方法有很多。鉴于计算机性能的提高(CPU的发展已经达到瓶颈,普通笔记本电脑的性能几乎是20年前的超级计算机)和黑客技术的进步,许多网站提供了破解哈希的功能。以下是一些常用的破解方法:

暴力破解(这是不可阻挡的破解方法之一,尝试在给定长度下组合各种字符。虽然效率很低,但密码最终会通过遍历获得,相当于尝试所有可能性。

字典攻击(也是不可阻挡的破解方法之一,相当于暴力破解的升级版本,通过收集常用的单词、短语、密码,然后存储所有,根据这些更接近的数据进行比较,运气猜测。

查表法(提前计算密码字典中的每个密码,然后将哈希值和相应密码存储在快速插入查询的数据结构中,然后查询该表。

彩虹表(这是大杀手,说白了就是存储一定长度的明文密码和相应的哈希密码,然后按照查表法破解。

我们上面提到的几种破解方法都是基于最基本的原则之一,所有的密码都以同样的方式加密哈希。也就是说,如果两个账户的密码相同,他们在哈希之后得到的密码也是一样的。如果我们能通过一些小手段让它们不同,那么破解的难度就是指数级的倍增。

具体方法是在密码中添加一个随机字符串,然后进行哈希化。这打乱了同样明确地映射到同样密文的原始规则,混合的随机字符串被称为盐。

密码中如何使用加密技术?

这些想法并不复杂,但大多数人在真正的工作中仍然会犯一些错误,使我们的料加的并不好。比如:

“盐值”的长度太短(通常要和密文长度一样才行)或者“盐值”出现重复。

哈希函数进行嵌套或者组合使用(非常重要的一点,别相信自己发明的某种加密方式,使用由密码学家研究出来的标准算法。)

尽量避免使用已经过时或者低端的哈希函数,例如:MD5、SH1等,推荐SH256、SH512等等。

“盐值”的产生并不是一个随意的rand函数,要使用基于加密的伪随机函数生成器,更加高度的随机性。