Skip to content

Instantly share code, notes, and snippets.

@cb1kenobi
Created November 8, 2017 23:11
Show Gist options
  • Save cb1kenobi/8ee7be1c610955e48fcfcdbc6c42ebf2 to your computer and use it in GitHub Desktop.
Save cb1kenobi/8ee7be1c610955e48fcfcdbc6c42ebf2 to your computer and use it in GitHub Desktop.
Hashed port number collisions
var crypto = require('crypto');
function hash(s) {
return (parseInt(crypto.createHash('sha1').update(s || '').digest('hex'), 16) % 50000) + 10000;
}
var nums = {};
var lookup = {};
for (var i = 1; i <= 100; i++) {
var r = parseInt(Math.random() * 1e4);
if (nums[r]) {
i--;
continue;
}
var s = 'com.testapp' + r;
var port = hash(s.split().reverse().join());
if (lookup[port]) {
console.log(s + '\t= ' + port + ' COLLISION! ' + lookup[port]);
} else {
console.log(s + '\t= ' + port);
lookup[port] = s;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment