#!/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); } // Generating base64 hash if ($crypt == 'htpasswd' ) { $hash = crypt($password, base64_encode($password)); } // Generating DES hash if ($crypt == 'des' ) { $hash = crypt($password, $salt); } // Printing result echo $hash . "\n";