BusyBeaver in JavaScript

This is an asm.js implementation of BusyBeaver - a password hashing, key derivation, and proof of work function intended to improve upon PBKDF2, bcrypt and scrypt in its resistance to brute forcing on hardware that isn't a 64-bit, general purpose CPU.

This page will load fast in Firefox, slowly in IE, and very slowly in Chrome. In Chrome, try BusyBeaver in Google Native Client.

I wrote about my experience with asm.js vs. Google Native Client in this post.

Consider that a single BusyBeaver digest with 50,000 iterations takes:

... whereas on the same computer, this JavaScript executes in 500 ms in Firefox, with optimized asm.js.

The compiled size of BusyBeaver is:

... whereas this JavaScript is 700 kB.

Look at the source code of BusyBeaver.js. Is it that much better than binary? Is it more compatible? Safer?

Why not implement PNaCl?

— denis bider

salt: pw: ops:
Calculating initial digest...