|
|
@@ -0,0 +1,36 @@
|
|
|
+#!/usr/local/vesta/php/bin/php
|
|
|
+<?php
|
|
|
+//# info: generate password hash
|
|
|
+//# options: HASH-METHOD SALT PASSWORD
|
|
|
+//
|
|
|
+//# The function generates password hash
|
|
|
+
|
|
|
+// Checking arguments
|
|
|
+if ((empty($argv[1])) || (empty($argv[2]))) {
|
|
|
+ echo "Error: not enought arguments\n";
|
|
|
+ echo "Usage: " . $argv[0] ." HASH-METHOD SALT PASSWORD\n";
|
|
|
+ exit(1);
|
|
|
+}
|
|
|
+
|
|
|
+$crypt = $argv[1];
|
|
|
+$salt = $argv[2];
|
|
|
+if (empty($argv[3])) {
|
|
|
+ $password = file_get_contents("php://stdin");
|
|
|
+ $password = str_replace("\n",'',$password);
|
|
|
+} else {
|
|
|
+ $password = $argv[3];
|
|
|
+}
|
|
|
+
|
|
|
+// Generating MD5 hash
|
|
|
+if ($crypt == 'md5' ) {
|
|
|
+ $hash = crypt($password, '$1$'.$salt.'$');
|
|
|
+}
|
|
|
+
|
|
|
+// Generating SHA-512 hash
|
|
|
+if ($crypt == 'sha-512' ) {
|
|
|
+ $hash = crypt($password, '$6$rounds=5000$'.$salt.'$');
|
|
|
+ $hash = str_replace('$rounds=5000','',$hash);
|
|
|
+}
|
|
|
+
|
|
|
+// Printing result
|
|
|
+echo $hash . "\n";
|