feat: scripts
This commit is contained in:
43
scripts/makepassword.js
Normal file
43
scripts/makepassword.js
Normal file
@@ -0,0 +1,43 @@
|
||||
#! /usr/bin/env runjs
|
||||
|
||||
var UnixArgsUtil = Packages.me.hatter.tools.commons.args.UnixArgsUtil;
|
||||
|
||||
var main = () => {
|
||||
UnixArgsUtil.parseGlobalArgs($ARGS);
|
||||
|
||||
if (UnixArgsUtil.ARGS.flags().containsAny('h', 'help')) {
|
||||
println('Make password from secure random, usage:');
|
||||
println(' makepassword.js');
|
||||
println(' h|help Help');
|
||||
println(' l|len|length Password length in bytes (default 10)');
|
||||
println(' c|cnt|count Password count (default 1)');
|
||||
println(' e|ecn|encode Password encoding(base32, base58, base64, hex) (default base58)');
|
||||
return;
|
||||
}
|
||||
|
||||
var len = UnixArgsUtil.ARGS.kvalueAny('l', 'len', 'length') || 10;
|
||||
var cnt = UnixArgsUtil.ARGS.kvalueAny('c', 'cnt', 'count') || 1;
|
||||
var enc = $STR(UnixArgsUtil.ARGS.kvalueAny('e', 'enc', 'encode') || 'base58').toLowerCase();
|
||||
|
||||
var isNotSupportedEnc = false;
|
||||
var random = $$.secureRandom();
|
||||
(parseInt(cnt)).times(() => {
|
||||
var passwdBs = random.nextBytes(len);
|
||||
if (['32', 'b32', 'base32'].contains(enc)) {
|
||||
println($$.io().bytes(passwdBs).asBase32());
|
||||
} else if (['58', 'b58', 'base58'].contains(enc)) {
|
||||
println($$.io().bytes(passwdBs).asBase58());
|
||||
} else if (['64', 'b64', 'base64'].contains(enc)) {
|
||||
println($$.io().bytes(passwdBs).asBase64());
|
||||
} else if (['hex'].contains(enc)) {
|
||||
println($$.io().bytes(passwdBs).asHex());
|
||||
} else {
|
||||
isNotSupportedEnc = true;
|
||||
}
|
||||
});
|
||||
if (isNotSupportedEnc) {
|
||||
println('Not supported encode: ' + enc);
|
||||
}
|
||||
};
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user