feat: add crypt.js
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
.idea/
|
||||||
# ---> macOS
|
# ---> macOS
|
||||||
# General
|
# General
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
35
crypt.js
Executable file
35
crypt.js
Executable 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();
|
||||||
Reference in New Issue
Block a user