#!/usr/bin/perl if (length($ARGV[0])>1) { $i=0; while ($#ARGV >= $i) { $args = "$args $ARGV[$i]"; $i++; } if ($args =~ /--pass=/i) { @data_in = split(/--pass=/,$args); $pass = $data_in[1]; $pass =~ s/ .*//gi; $php_script = ' require("dbconnect_mysqli.php"); require("functions.php"); $stmt = "SELECT pass_key,pass_cost FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); $qm_conf_ct = mysqli_num_rows($rslt); if ($qm_conf_ct > 0) { $row=mysqli_fetch_row($rslt); $SSpass_key = $row[0]; $SSpass_cost = $row[1]; $pass_options = ["cost" => $SSpass_cost,"salt" => base64_encode($SSpass_key)]; $pass_hash = password_hash($argv[1], PASSWORD_BCRYPT, $pass_options); $pass_hash = substr($pass_hash, 29, 31); echo "PHASH: $pass_hash\n"; } '; open my $sm, "|php -r '$php_script' -- $pass" or die "could not run inline php script"; close $sm; } }