home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / bin / sha1pass < prev    next >
Encoding:
Text File  |  2010-10-14  |  596 b   |  35 lines

  1. #!/usr/bin/perl
  2.  
  3. use bytes;
  4. use Digest::SHA1;
  5. use MIME::Base64;
  6.  
  7. sub random_bytes($) {
  8.     my($n) = @_;
  9.     my($v, $i);
  10.  
  11.     if ( open(RANDOM, '<', '/dev/random') ||
  12.      open(RANDOM, '<', '/dev/urandom') ) {
  13.     read(RANDOM, $v, $n);
  14.     } else {
  15.     # No real RNG available...
  16.     srand($$ ^ time);
  17.     $v = '';
  18.     for ( $i = 0 ; $i < $n ; $i++ ) {
  19.         $v .= ord(int(rand() * 256));
  20.     }
  21.     }
  22.  
  23.     return $v;
  24. }
  25.  
  26.  
  27. ($pass, $salt) = @ARGV;
  28.  
  29. unless (defined($salt)) {
  30.     $salt = MIME::Base64::encode(random_bytes(6), '');
  31. }
  32. $pass = Digest::SHA1::sha1_base64($salt, $pass);
  33.  
  34. print '$4$', $salt, '$', $pass, "\$\n";
  35.