Authen-Passphrase

 view release on metacpan or  search on metacpan

lib/Authen/Passphrase/EggdropBlowfish.pm  view on Meta::CPAN

use Carp qw(croak);
use Crypt::Eksblowfish::Uklblowfish 0.008;

our $VERSION = "0.008";

use parent "Authen::Passphrase";

my $b64_digits =
	"./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

sub _en_base64($) {
	my($bytes) = @_;
	my $digits = "";
	foreach my $word (reverse unpack("N*", $bytes)) {
		for(my $i = 6; $i--; $word >>= 6) {
			$digits .= substr($b64_digits, $word & 0x3f, 1);
		}
	}
	return $digits;
}

sub _de_base64($) {
	my($digits) = @_;
	my @words;
	while($digits =~ /(......)/sg) {
		my $wdig = $1;
		my $word = 0;
		for(my $i = 6; $i--; ) {
			$word <<= 6;
			$word |= index($b64_digits, substr($wdig, $i, 1));
		}
		push @words, $word;

lib/Authen/Passphrase/PHPass.pm  view on Meta::CPAN

use Data::Entropy::Algorithms 0.000 qw(rand_bits);
use Digest::MD5 1.99_53 ();

our $VERSION = "0.008";

use parent "Authen::Passphrase";

my $base64_digits = "./0123456789ABCDEFGHIJKLMNOPQRST".
		    "UVWXYZabcdefghijklmnopqrstuvwxyz";

sub _en_base64($) {
	my($bytes) = @_;
	my $nbytes = length($bytes);
	my $npadbytes = 2 - ($nbytes + 2) % 3;
	$bytes .= "\0" x $npadbytes;
	my $digits = "";
	for(my $i = 0; $i < $nbytes; $i += 3) {
		my $v = ord(substr($bytes, $i, 1)) |
			(ord(substr($bytes, $i+1, 1)) << 8) |
			(ord(substr($bytes, $i+2, 1)) << 16);
		$digits .= substr($base64_digits, $v & 0x3f, 1) .
			substr($base64_digits, ($v >> 6) & 0x3f, 1) .
			substr($base64_digits, ($v >> 12) & 0x3f, 1) .
			substr($base64_digits, ($v >> 18) & 0x3f, 1);
	}
	substr $digits, -$npadbytes, $npadbytes, "";
	return $digits;
}

sub _de_base64($) {
	my($digits) = @_;
	my $ndigits = length($digits);
	my $npadbytes = 3 - ($ndigits + 3) % 4;
	$digits .= "." x $npadbytes;
	my $bytes = "";
	for(my $i = 0; $i < $ndigits; $i += 4) {
		my $v = index($base64_digits, substr($digits,$i,1)) |
			(index($base64_digits, substr($digits,$i+1,1)) << 6) |
			(index($base64_digits, substr($digits,$i+2,1)) << 12) |
			(index($base64_digits, substr($digits,$i+3,1)) << 18);



( run in 0.274 second using v1.01-cache-2.11-cpan-65fba6d93b7 )