36 lines
1.0 KiB
JavaScript
Executable File
36 lines
1.0 KiB
JavaScript
Executable File
#!/usr/bin/env runjs
|
|
|
|
// Reference:
|
|
// - https://www.akkadia.org/drepper/SHA-crypt.txt
|
|
|
|
requireJAR('maven:commons-codec:commons-codec:1.72.2');
|
|
|
|
var Sha2Crypt = Packages.org.apache.commons.codec.digest.Sha2Crypt;
|
|
var UnixCrypt = Packages.org.apache.commons.codec.digest.UnixCrypt;
|
|
var Md5Crypt = Packages.org.apache.commons.codec.digest.Md5Crypt;
|
|
|
|
var main = () => {
|
|
if ($ARGS.length == 0) {
|
|
println('[ERROR] Require arguments.');
|
|
return;
|
|
}
|
|
var keyBytes = __.bytes.from($ARGS[0]).bytes();
|
|
var width = 8;
|
|
|
|
println(pad('Unix', width) + UnixCrypt.crypt(keyBytes));
|
|
println(pad('APR1', width) + Md5Crypt.apr1Crypt(keyBytes));
|
|
println(pad('MD5', width) + Md5Crypt.md5Crypt(keyBytes));
|
|
println(pad('SHA256', width) + Sha2Crypt.sha256Crypt(keyBytes));
|
|
println(pad('SHA512', width) + Sha2Crypt.sha512Crypt(keyBytes));
|
|
};
|
|
|
|
function pad(str, width) {
|
|
var p = width - str.length
|
|
var s = str;
|
|
for (var i = 0; i < p; i++) { s += ' '; }
|
|
s += ': ';
|
|
return s;
|
|
}
|
|
|
|
main();
|