Created
October 11, 2009 12:24
-
-
Save kentfredric/207648 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
TRUE f7414b553995cb8c728db3d0912a3ef9 | |
Algorithm MD2 validated successfully | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
TRUE 49586cb2e5f1a5f5929492b6019e4de0 | |
Algorithm MD4 validated successfully | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
TRUE b23cf2d0fb74b0ffa0cf4c70e6e04926 | |
Algorithm MD5 validated successfully | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
TRUE c8499454bada15f6d76bbf8cf133960f93f9b4eb | |
Algorithm SHA-1 validated successfully | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
TRUE 9cdcfbbe0183b2f1855ee2f7354fb2a8d175b133b227052a095302b4559bf525 | |
Algorithm SHA-256 validated successfully | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
TRUE a266bbf6ba2303d3547a075d79a19b4d74d0775bbd3fcaf5025f46070cde97ad5ef7193ebd304910c60170af569e8286 | |
Algorithm SHA-384 validated successfully | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
TRUE 0c4f22c8d979def2ab3efdfe62f294372d0ec22c69b62334ad58b4306ceed310a0010414205660df0afa6850a1ad201f2b803af58475f18d43c7f0b9fe7777b5 | |
Algorithm SHA-512 validated successfully | |
FALSE ad4402a8979f8008e7c2d7f18c9b047eaa0c708de44bb11ecfaa534a948c2e3c3a5042354c9eebf30bbbbd5db32c82197de46f29d63eb3f4adb5c3f63d521dec | |
FALSE ad4402a8979f8008e7c2d7f18c9b047eaa0c708de44bb11ecfaa534a948c2e3c3a5042354c9eebf30bbbbd5db32c82197de46f29d63eb3f4adb5c3f63d521dec | |
FALSE ad4402a8979f8008e7c2d7f18c9b047eaa0c708de44bb11ecfaa534a948c2e3c3a5042354c9eebf30bbbbd5db32c82197de46f29d63eb3f4adb5c3f63d521dec | |
FALSE ad4402a8979f8008e7c2d7f18c9b047eaa0c708de44bb11ecfaa534a948c2e3c3a5042354c9eebf30bbbbd5db32c82197de46f29d63eb3f4adb5c3f63d521dec | |
FALSE cd2bbcc506f4091f2147b0afda48d3b5d3a8d9c0c5a8be2f63ba8516d01d4d09ba324dc6d77e72805dc4b3fb1f6a7799650f2858c981f5a6d5d4a1063d65ed32 | |
FALSE cd2bbcc506f4091f2147b0afda48d3b5d3a8d9c0c5a8be2f63ba8516d01d4d09ba324dc6d77e72805dc4b3fb1f6a7799650f2858c981f5a6d5d4a1063d65ed32 | |
FALSE cd2bbcc506f4091f2147b0afda48d3b5d3a8d9c0c5a8be2f63ba8516d01d4d09ba324dc6d77e72805dc4b3fb1f6a7799650f2858c981f5a6d5d4a1063d65ed32 | |
FALSE cd2bbcc506f4091f2147b0afda48d3b5d3a8d9c0c5a8be2f63ba8516d01d4d09ba324dc6d77e72805dc4b3fb1f6a7799650f2858c981f5a6d5d4a1063d65ed32 | |
FALSE b4d914cc0592cb7684593243e63eab62655f521193044793796431cc03207c0a01c4dfe7f3cc4c9b42525a16c10aa63802ac6bd16080eea6649d703154a54a49 | |
FALSE b4d914cc0592cb7684593243e63eab62655f521193044793796431cc03207c0a01c4dfe7f3cc4c9b42525a16c10aa63802ac6bd16080eea6649d703154a54a49 | |
FALSE b4d914cc0592cb7684593243e63eab62655f521193044793796431cc03207c0a01c4dfe7f3cc4c9b42525a16c10aa63802ac6bd16080eea6649d703154a54a49 | |
FALSE b4d914cc0592cb7684593243e63eab62655f521193044793796431cc03207c0a01c4dfe7f3cc4c9b42525a16c10aa63802ac6bd16080eea6649d703154a54a49 | |
FALSE 7bcf4c36bdf05c9989d468078f5c739c10a331daa0fb8b4e35d4c455fef1f16e079c3c0bbd1ff80c5b966b8c77095fbc40936fff2bd013630c928cb8e342fdda | |
FALSE 7bcf4c36bdf05c9989d468078f5c739c10a331daa0fb8b4e35d4c455fef1f16e079c3c0bbd1ff80c5b966b8c77095fbc40936fff2bd013630c928cb8e342fdda | |
FALSE 7bcf4c36bdf05c9989d468078f5c739c10a331daa0fb8b4e35d4c455fef1f16e079c3c0bbd1ff80c5b966b8c77095fbc40936fff2bd013630c928cb8e342fdda | |
FALSE 7bcf4c36bdf05c9989d468078f5c739c10a331daa0fb8b4e35d4c455fef1f16e079c3c0bbd1ff80c5b966b8c77095fbc40936fff2bd013630c928cb8e342fdda | |
Algorithm Whirlpool failed validation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
use strict; | |
use warnings; | |
use DBIx::Class::EncodedColumn::Digest; | |
# Paraphrased copy of DBIx::Class::EncodedColumn::Digest::make_check_sub | |
# | |
my %digest_lengths = ( | |
'MD2' => { base64 => 22, binary => 16, hex => 32 }, | |
'MD4' => { base64 => 22, binary => 16, hex => 32 }, | |
'MD5' => { base64 => 22, binary => 16, hex => 32 }, | |
'SHA-1' => { base64 => 27, binary => 20, hex => 40 }, | |
'SHA-256' => { base64 => 43, binary => 32, hex => 64 }, | |
'SHA-384' => { base64 => 64, binary => 48, hex => 96 }, | |
'SHA-512' => { base64 => 86, binary => 64, hex => 128 }, | |
'CRC-CCITT' => { base64 => 2, binary => 3, hex => 3 }, | |
'CRC-16' => { base64 => 6, binary => 5, hex => 4 }, | |
'CRC-32' => { base64 => 14, binary => 10, hex => 8 }, | |
'Adler-32' => { base64 => 6, binary => 4, hex => 8 }, | |
'Whirlpool' => { base64 => 86, binary => 64, hex => 128 }, | |
'Haval-256' => { base64 => 44, binary => 32, hex => 64 }, | |
); | |
sub make_check_sub { | |
my ( $encoder, $args ) = @_; | |
#this is the digest length | |
my $len = $digest_lengths{ $args->{algorithm} }{ $args->{format} }; | |
die("Unable to find digest length") unless defined $len; | |
#fast fast fast | |
return eval qq^ sub { | |
my \$col_v = shift; | |
my \$check = shift; | |
my \$salt = substr(\$col_v, ${len}); | |
\$encoder->(\$check, \$salt) eq \$col_v; | |
} ^ || die($@); | |
} | |
for my $format (qw( MD2 MD4 MD5 SHA-1 SHA-256 SHA-384 SHA-512 Whirlpool )) { | |
my @encoders = (); | |
for ( 0 .. 3 ) { | |
my $encoder = DBIx::Class::EncodedColumn::Digest->make_encode_sub( | |
'dummy', | |
{ | |
format => 'hex', | |
algorithm => $format, | |
salt_length => 0, | |
} | |
); | |
my $checker = make_check_sub( | |
$encoder, | |
{ | |
algorithm => $format, | |
format => 'hex', | |
salt_length => 0, | |
} | |
); | |
push @encoders, [ $encoder, $checker ]; | |
} | |
my $algo_success = 1; | |
for ( 0 .. 3 ) { | |
for (@encoders) { | |
my $encoded = $_->[0]->( 'asdasd123', '' ); | |
my $check_response = $_->[1]->( $encoded, 'asdasd123' ); | |
if ( not $check_response ){ | |
print "\e[31m FALSE $encoded\e[0m\n"; | |
$algo_success = 0; | |
} else { | |
print "\e[37m TRUE $encoded\e[0m\n"; | |
} | |
} | |
} | |
if( $algo_success ){ | |
print "Algorithm $format validated successfully\n"; | |
} else { | |
print "Algorithm $format failed validation\n"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment