feat: scripts

This commit is contained in:
2025-04-05 16:49:36 +08:00
parent c37b9f0ab2
commit bd4fe63cdc

35
scripts/crypt.js Executable file
View File

@@ -0,0 +1,35 @@
#!/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();