#! /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();