|
|
@@ -10,8 +10,9 @@
|
|
|
|
|
|
// Checking arguments
|
|
|
if ((empty($argv[1])) || (empty($argv[2]))) {
|
|
|
- echo "Error: not enought arguments\n";
|
|
|
- echo "Usage: " . $argv[0] ." HASH_METHOD SALT PASSWORD\n";
|
|
|
+ $errstr = "Error: not enought arguments\n";
|
|
|
+ $errstr .= "Usage: " . $argv[0] ." HASH_METHOD SALT PASSWORD (or the password can be sent in STDIN)\n";
|
|
|
+ fwrite(STDERR, $errstr);
|
|
|
exit(1);
|
|
|
}
|
|
|
|
|
|
@@ -19,7 +20,7 @@ $crypt = $argv[1];
|
|
|
$salt = $argv[2];
|
|
|
if (empty($argv[3])) {
|
|
|
$password = file_get_contents("php://stdin");
|
|
|
- $password = str_replace("\n",'',$password);
|
|
|
+ $password = str_replace("\n", '', $password);
|
|
|
} else {
|
|
|
$password = $argv[3];
|
|
|
}
|
|
|
@@ -27,22 +28,16 @@ if (empty($argv[3])) {
|
|
|
// Generating MD5 hash
|
|
|
if ($crypt == 'md5' ) {
|
|
|
$hash = crypt($password, '$1$'.$salt.'$');
|
|
|
-}
|
|
|
-
|
|
|
-// Generating SHA-512 hash
|
|
|
-if ($crypt == 'sha-512' ) {
|
|
|
+} elseif ($crypt == 'sha-512' ) {
|
|
|
$hash = crypt($password, '$6$rounds=5000$'.$salt.'$');
|
|
|
$hash = str_replace('$rounds=5000','',$hash);
|
|
|
-}
|
|
|
-
|
|
|
-// Generating base64 hash
|
|
|
-if ($crypt == 'htpasswd' ) {
|
|
|
+} elseif ($crypt == 'htpasswd' ) {
|
|
|
$hash = crypt($password, base64_encode($password));
|
|
|
-}
|
|
|
-
|
|
|
-// Generating DES hash
|
|
|
-if ($crypt == 'des' ) {
|
|
|
+} elseif ($crypt == 'des' ) {
|
|
|
$hash = crypt($password, $salt);
|
|
|
+} else {
|
|
|
+ fwrite(STDERR, "Error: argument #1 (HASH_METHOD) is invalid. It must be one of 'md5', 'sha-512', 'htpasswd', 'des'\n");
|
|
|
+ exit(1);
|
|
|
}
|
|
|
|
|
|
// Printing result
|