in reply to Re^2: convert c# to perl code
in thread convert c# to perl code
when i run the code above on the string "7512" i get: cA5YjDeU2fOJwwnVFPCuAw==
Apparently, UnicodeEncoding encodes to UTF-16LE - at least that's what your sample seems to show. So in Perl, you'll have to use the Encode module for that, and then either use md5_base64 from Digest::MD5, which removes the padding at the end of the string (==), or, if you want the padding, you'll have to use MIME::Base64 separately:
use warnings; use strict; use Encode qw/encode/; use Digest::MD5 qw/md5/; use MIME::Base64 qw/encode_base64/; my $string = "7512"; my $md5b64 = encode_base64( md5( encode( 'UTF-16LE', $string, Encode::FB_CROAK|Encode::LEAVE_SRC ) ), "" ); print "Generated String is: MD5:$md5b64\n"; my $expect = "cA5YjDeU2fOJwwnVFPCuAw=="; print $md5b64 eq $expect ? "Matches!\n" : "Doesn't match!\n"; __END__ Generated String is: MD5:cA5YjDeU2fOJwwnVFPCuAw== Matches!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: convert c# to perl code
by ori smaug (Novice) on Jan 01, 2019 at 14:29 UTC | |
|
Re^4: convert c# to perl code
by ori smaug (Novice) on Jan 01, 2019 at 14:32 UTC |