您的位置  > 互联网

我有一个200x年加密的rar文件,然而……

后来学了C#之后,一直想写一个密码破解工具来暴力破解密码。

第一次大概是2007年左右,当时有位大佬通过RAR正式请求C#解密算法。 我以为随时都可以用,所以就没有太仔细的研究。 有一天,当我想再次练习时,我发现大师的帖子已经找不到了。

我第二次开始研究它是在 2011 年。这次是通过 C# 和 C++ 库实现的。 勉强能用。 尝试了几次都没有成功,后来发现必须配合特定的C++库使用。

该程序是一个简单的暴力破解。 在我的测试中,对于像 abc 这样的 3 位和 4 位密码,速度还可以。 当密码达到 5 或 6 位数字时,时间开始变得难以接受。

我的RAR文件的密码好像有十几位数字。 我感觉如果靠这种暴力破解的话,我可能要算一辈子了。 那么,我们就不能再继续使用这种简单粗暴但效率低下的方法了。

我打算稍后升级该程序。 一个方向是用CUDA来利用GPU加速,包括开发矿机之类的专用机器,但我不太想做这个(主要是我没钱); 一个方向是发展分布式计算,多台计算机中继; 最初的几台量子计算机在 2016 年非常流行,我认为还有希望。 然而,在接下来的几年里,量子计算并没有真正普及起来。

其中,分布式计算遵循阿里巴巴开发的“去IOE”方式,用低配置PC取代高性能工作站。 就我的具体情况来说,我的想法是收集一些网吧废弃的电脑,组成一个集群。 每一件只要一两百元。 只是这样可以降低硬件成本,但空间和功耗又成为问题。

所以,最终的结论是,密码破解这个话题的一般答案:密码破解是密码复杂性和计算机计算能力之间的竞争——还有,金钱!

--------------- ≯2月17日更新≮ ---------------

本来只是随口吐槽一下,没想到竟然引来了这么多人。 我把程序挖出来,截图给大家看:

如果有超过100个赞(周日之前),我会更改程序并为每个人运行一些测试。 比如单线程的情况下,破解3位密码、4位密码、5位密码需要多长时间?

如果点赞数更“恐怖”,那我们就去找别的东西玩。 例如,我家里还有一台坏掉的笔记本电脑和一台废弃的台式电脑,它们可以变成一个简单的分布式系统。 (阿里云服务器短期租用也很便宜。)再比如开发版本。