md5-password-cracker.js

Crack MD5 passwords with JavaScript Web Workers

Github星跟踪图

MD5-Password-Cracker.js

by Feross Aboukhadijeh.

This was an experiment to see if using HTML5 Web Workers to parallelize CPU-bound tasks is practical.

View the demo.

How it works

This program spawns several Web Workers (JavaScript threads) in order to crack an MD5 password hash.

Given a hash to crack, and enough time, this program will find the password that was used to make the hash. When you visit the demo, 8 background Web Worker processes are spawned, which each attempt to use 100% of a CPU. Web Workers have no way to behave nicely -- they just run as fast as possible. Thus, most systems with <= 8 CPU cores will be maxed out.

However, since the tasks are running in separate threads and NOT on the main UI thread, the browser is actually quite usable while this is going on in the background. You can scroll around, click on things, and everything is responsive. The only thing you'll notice is that your computer's fans will be loud ;)

The space of possible passwords is divided so each Worker can work in parallel. Even so, I could only get around 1 million password hashes per second, which isn't very impressive at all.

A typical CPU can get around 50 million hashes per second, so JavaScript is really slowing things down here. The MD5 algorithm I used is Joseph Meyer's, which is supposed to be the fastest JS implementation, but even so, it's likely the bottleneck here.

I want to explore GPU-based cracking next. Is there some way to hack WebGL in order to crack passwords quickly?

Only tested in Chrome v23.

Read more about password hashing.

主要指标

概览
名称与所有者feross/md5-password-cracker.js
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证
所有者活动
创建于2012-12-23 06:21:42
推送于2017-10-25 11:41:51
最后一次提交2012-12-26 04:25:10
发布数0
用户参与
星数384
关注者数25
派生数69
提交数12
已启用问题?
问题数4
打开的问题数2
拉请求数1
打开的拉请求数0
关闭的拉请求数1
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?