App-bmkpasswd

 view release on metacpan or  search on metacpan

bin/bmkpasswd  view on Meta::CPAN

    $term->setlflag( $term->getlflag | eval("POSIX::ECHO") );
    $term->setattr(0);
  } elsif ($has_readkey) {
    Term::ReadKey::ReadMode(0)
  }

  chomp $pwd;
  STDERR->print("\n");
}

my $timer = $bench ? [gettimeofday] : ();

if ($check) {
  if ( passwdcmp($pwd, $check) ) {
    print "Match\n", "$check\n";
  } else {
    exit 1
  }
} else {
  print mkpasswd($pwd, $type, $bcost, $strong)."\n";
}
if ($bench) {
  my $interval = tv_interval($timer);
  print " bench: $type, time: $interval\n";
}

__END__
=pod

=head1 NAME

 bmkpasswd - bcrypt-enabled mkpasswd

bin/bmkpasswd  view on Meta::CPAN

=head1 OPTIONS

 -m, --method=TYPE  [default: bcrypt]
     Types:  bcrypt  (recommended; guaranteed available)
             sha512  (requires recent libc or Crypt::Passwd::XS)
             sha256  (requires recent libc or Crypt::Passwd::XS)
 -w, --workcost=NUM Bcrypt work-cost factor; default 08.
                    Higher is slower. Should be a two-digit power of 2.
 -c, --check=HASH   Compare password against given HASH
 -s, --strong       Use strongly-random salt generation
 -b, --benchmark    Show timers; useful for comparing hash generation
 --available        List available methods (one per line)
 --version          Display version information and available methods

If PASSWD is missing, it is prompted for interactively.

=head1 DESCRIPTION

Simple bcrypt-enabled mkpasswd.

While SHA512 isn't a bad choice if you have it, bcrypt has the 



( run in 0.474 second using v1.01-cache-2.11-cpan-49f99fa48dc )