如何防范Web前端慢Hash导致的明文口令泄露问题?

2026-05-27 14:310阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5470个文字,预计阅读时间需要22分钟。

如何防范Web前端慢Hash导致的明文口令泄露问题?

(更新:https://www.cnblogs.com/index-/p/frontend_kdf.)0x00 前言,天下武功,唯快不破。但在密码学中,情况不同。算法越快,越容易被破解。0x01 暴力破解,密码破解(严谨地说,应该是账户口令的破解)。

(更新:www.cnblogs.com/index-html/p/frontend_kdf.html )

0x00 前言

天下武功,唯快不破。但在密码学中则不同。算法越快,越容易破。

0x01 暴力破解

密码破解(严格地说应该是账号口令的破解),就是把散列值还原成明文口令。这貌似有不少方法,但事实上都得走一条路:暴力穷举。(也许你会说还可以查表,瞬间就出结果。虽然查表不用穷举,但表的制造过程仍然需要。查表只是将穷举提前了而已)

因为散列计算是单向的,是不可逆的,所以只能穷举。穷举的原理很简单。只要知道密文用的是什么 Hash 算法,我们也用同样的算法把常用词组跑一遍。若有结果和密文一样,那就猜中了。

穷举的速度有多快?这和算法有关。Hash 一次有多快,猜一次也这么快。

例如 MD5 就非常快的,若每次 Hash 耗费 1 微秒,那破解时猜一个词组,也只需 1 微秒(假设机器都性能一样,词组长度相近),攻击者一秒钟就能猜 100 万个!(而且这还只是单线程的速度)

所以,Hash 算法越快,破解起来就越容易。

0x02 慢 Hash

如果能提高 Hash 时间,显然也能增加破解时间。如果 Hash 一次提高到 10 毫秒,那么攻击者每秒只能猜 100 个,破解速度就慢了一万倍。

怎样才能让 Hash 变慢?最简单的,就是对 Hash 后的结果再 Hash,反复多次。

阅读全文

本文共计5470个文字,预计阅读时间需要22分钟。

如何防范Web前端慢Hash导致的明文口令泄露问题?

(更新:https://www.cnblogs.com/index-/p/frontend_kdf.)0x00 前言,天下武功,唯快不破。但在密码学中,情况不同。算法越快,越容易被破解。0x01 暴力破解,密码破解(严谨地说,应该是账户口令的破解)。

(更新:www.cnblogs.com/index-html/p/frontend_kdf.html )

0x00 前言

天下武功,唯快不破。但在密码学中则不同。算法越快,越容易破。

0x01 暴力破解

密码破解(严格地说应该是账号口令的破解),就是把散列值还原成明文口令。这貌似有不少方法,但事实上都得走一条路:暴力穷举。(也许你会说还可以查表,瞬间就出结果。虽然查表不用穷举,但表的制造过程仍然需要。查表只是将穷举提前了而已)

因为散列计算是单向的,是不可逆的,所以只能穷举。穷举的原理很简单。只要知道密文用的是什么 Hash 算法,我们也用同样的算法把常用词组跑一遍。若有结果和密文一样,那就猜中了。

穷举的速度有多快?这和算法有关。Hash 一次有多快,猜一次也这么快。

例如 MD5 就非常快的,若每次 Hash 耗费 1 微秒,那破解时猜一个词组,也只需 1 微秒(假设机器都性能一样,词组长度相近),攻击者一秒钟就能猜 100 万个!(而且这还只是单线程的速度)

所以,Hash 算法越快,破解起来就越容易。

0x02 慢 Hash

如果能提高 Hash 时间,显然也能增加破解时间。如果 Hash 一次提高到 10 毫秒,那么攻击者每秒只能猜 100 个,破解速度就慢了一万倍。

怎样才能让 Hash 变慢?最简单的,就是对 Hash 后的结果再 Hash,反复多次。

阅读全文