Skip to content

Instantly share code, notes, and snippets.

@superchris
Created December 14, 2016 18:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save superchris/4291b44cdfa8d9becbbbc023017e8a32 to your computer and use it in GitHub Desktop.
Save superchris/4291b44cdfa8d9becbbbc023017e8a32 to your computer and use it in GitHub Desktop.
var md5 = require('md5');
var salt = "jlmsuwbz";
var index = 0;
var keys = 0;
const THREE_MATCH = /(.)\1\1/
function santaHash(input, index) {
return md5(input+index);
};
function hasThreeOfAKind(hash) {
arr = hash.match(THREE_MATCH)
return arr == null ? false : arr[1]
}
function hasFiveOfAKind(hash, character) {
return hash.indexOf(character + character + character + character + character) > -1
}
while (keys < 64) {
var hash = santaHash(salt, index);
var matchingCharacter = hasThreeOfAKind(hash);
if(matchingCharacter) {
for (var i = 1; i <= 1000; i++) {
var newHash = santaHash(salt, i + index);
if (hasFiveOfAKind(newHash, matchingCharacter)) {
keys++;
break;
}
}
}
if (keys === 64) {
break;
}
index++;
}
console.log(index)
while(!found){
var hash = santaHash(salt, index);
var matchingCharacter = hasThreeOfAKind(hash);
if(matchingCharacter) {
matches[matchingCharacter] = index;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment