在德州农场休假的杨成,被临时地传送回了任务调度中心。
“系统啊,有什么问题吗?”,杨成感觉很突然。
“是这样的成成,我们正在进行用户密码安全评估,希望你能帮我们测试下”。
“哦?”,杨成一听顿时来了兴致。
“我们游戏对用户密码做了加密,采用的是国际通用的SHA-256哈希加密,对于一般长度的密码,安全肯定是有保证的,不过呢”,系统妹子话锋一转。
“对于8位以下的短密码,无法确定安全性,所以想听听你的意见”。
对于喜欢接触各类编程知识的杨成来说,他自然是有所了解。
“哈希类加密,主要是为了防止逆向破解,但攻击者可以先通过社会工程学,分析出用户密码的大致组合,然后根据这个组合,做暴力破解”。
“对于8位以下的短密码,哈希加密是很脆弱的”。
说着,杨成调出了编辑器面板。
“假如我们得到了一段哈希加密后的密文”。
“5694d08a2e53ffcae0c3103e5ad6f6076abd960eb1f8a56577040bc1028f702b”
“这段密文以我们现在的手段,很难逆向破解”。
“但是如果攻击者分析出了一段预测的值,比如说”。
“cdeo”。
“他可以根据这段值,穷举出所有的组合,对每一个组合,做哈希加密,只要这个加密结果和密文匹配,只要能匹配得上,那就说明这个组合是用户密码”。
“而这个过程是很高效的,最多只需要4X3X2X1=24次匹配,这对于机器几乎是瞬间可以完成的事情”。
说着,杨成开始编写代码,然后一运行。
cdeo
cdoe
cedo
ceod
code
实际上只用了5次匹配,就得出了用户的密码,“code”。
“由此可见,哈希函数对于短密码是多么的苍白无力”,杨成收起编辑器。
“嗯,成成很不错,继续努力吧,你的付出一定会有回报的”,系统妹子给予鼓舞。
“感谢你们给我的锻炼”,杨成由衷地感谢道。
“叮!恭喜您完成了哈希加密的相关任务!”
“当前积分113分,击败了全球38%的玩家,请您再接再厉!”