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