Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //This is a very specific password cracker for bcrypt.
- //It cracks from 0A0 to 99z999 and thus is probably useless for you.
- //Made for https://redd.it/4dqeyz
- var util=require("util");
- var bcrypt=require("bcrypt");
- var cluster=require("cluster");
- var numCPUs=require("os").cpus().length;;
- var charset="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
- var hash="$2a$10$Cv/hHXntAbMoFbZ9.fFNbeNdi26sc15eo04ruHTfk8xhuza88.xq6";
- var id=0;
- var last=null;
- charset=charset.reverse().join("");
- //The master process needs to do different stuff
- if(cluster.isMaster)
- {
- var childs=[];
- var hashes=[];
- var count=0;
- var total=0;
- var start=Date.now();
- //spawn one slave for each CPU code in our system.
- for (var i = 0; i < numCPUs; i++)
- {
- childs.push(cluster.fork());
- }
- //display stats once a second
- setInterval(function(){
- //clears screen and moves cursor to top left
- util.print("\u001b[2J\u001b[0;0H");
- console.log("H/s",count);
- console.log("Total",total);
- console.log("Runtime:",((Date.now()-start)/1000)|0,"sec");
- hashes.forEach(function(v,i){
- console.log(i,v);
- });
- count=0;
- },1000);
- //hook to message events from children
- childs.forEach(function(v,i){
- v.on("message",function(m)
- {
- if(m.msg==="count")
- {
- ++count;
- ++total;
- }
- hashes[i]=m.hash;
- });
- });
- }
- else if(cluster.isWorker)
- {
- id=cluster.worker.id;
- console.log(id,"started");
- //counts down from 99 to 0 (1st part of password)
- for(var i=99;i>=0;i--)
- {
- //counts down all possible letters (2nd part of password)
- for(var k=0;k<charset.length;k++)
- {
- //counts down from 999 to 0 (3rd part of password)
- //here we don't subtract only one and we have different starting values.
- //Each slave will thus have a different password to test
- for(var j=999-id;j>=0;j-=numCPUs)
- {
- //if the password is correct, print it and then exit
- if(bcrypt.compareSync(i+charset[k]+j,hash))
- {
- console.log("DONE! Password:",i+charset[k]+j);
- process.exit();
- }
- process.send({msg:"count",hash:i+charset[k]+j});
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment