diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2b498a1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,65 @@ +{ + "name": "jstrip", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "encode": "^1.0.1", + "iconv-lite": "^0.6.3", + "unix-crypt-td-js": "^1.1.4" + } + }, + "node_modules/encode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encode/-/encode-1.0.1.tgz", + "integrity": "sha1-rP2PMvTONCM9Ms4YvlX583JSY+M=" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==" + } + }, + "dependencies": { + "encode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encode/-/encode-1.0.1.tgz", + "integrity": "sha1-rP2PMvTONCM9Ms4YvlX583JSY+M=" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5ea3467 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "encode": "^1.0.1", + "iconv-lite": "^0.6.3", + "unix-crypt-td-js": "^1.1.4" + } +} diff --git a/trip.js b/trip.js new file mode 100644 index 0000000..b4020e0 --- /dev/null +++ b/trip.js @@ -0,0 +1,43 @@ +var x = true; +const trip = process.argv.slice(2); +if(trip == "") { +console.log("No argument supplied."); +console.log("Usage: node trip.js [tripcode]"); +process.exit(1) +} +function limit (string = '', limit = 0) { + return string.substring(0, limit) +} +const { encode } = require('iconv-lite'); +const replace = { + ':': 'A', + ';': 'B', + '<': 'C', + '=': 'D', + '>': 'E', + '?': 'F', + '@': 'G', + '[': 'a', + '\\': 'b', + ']': 'c', + '^': 'd', + '_': 'e', + '`': 'f', + }; +const crypt = require('unix-crypt-td-js'); +while(x) { +password = limit(Math.random().toString(36).replace('0.', ''), 10); +encoded = encode(password, 'SHIFT_JIS') + .toString('latin1'); + let salt = `${encoded}H..` + .substring(1, 3) + .replace(/[^.-z]/g, '.'); + for (let find in replace) { + salt = salt.split(find).join(replace[find]); + } + hashed = crypt(encoded, salt); +var ayumi = new RegExp(trip, 'i' ); + if(hashed.slice(-10).match(ayumi)) { +console.log('#'+password, '=', hashed.slice(-10)); + } +}