mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
29 lines
751 B
Plaintext
29 lines
751 B
Plaintext
|
#!/usr/bin/env node
|
||
|
|
||
|
var program = require('commander');
|
||
|
var RandomString = require("randomstring");
|
||
|
var Util = require("util");
|
||
|
var crypt = require("crypt3");
|
||
|
|
||
|
function ssha512(password, saltSize, rounds) {
|
||
|
// $6 means SHA512
|
||
|
const _salt = Util.format("$6$rounds=%d$%s", rounds,
|
||
|
RandomString.generate(saltSize));
|
||
|
|
||
|
const hash = crypt(password, _salt);
|
||
|
return Util.format("{CRYPT}%s", hash);
|
||
|
}
|
||
|
|
||
|
let password;
|
||
|
|
||
|
program
|
||
|
.option('-s, --salt <size>', 'The size of the salt to generate.')
|
||
|
.option('-r, --rounds <rounds>', 'The number of rounds.')
|
||
|
.arguments('<password>')
|
||
|
.action(function (_password) {
|
||
|
password = _password;
|
||
|
})
|
||
|
.parse(process.argv);
|
||
|
|
||
|
console.log(ssha512(password, program.salt || 16, program.rounds || 500000));
|