|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Denis Poznyakov 2:450/160.8 14 Sep 2001 13:59:05 To : Sergey Sheibak Subject : base64 --------------------------------------------------------------------------------
IK>> Кто знает, как декодить и енкодить средствами perl ?
SS> Помнится на www.webscript.ru была такая позновательная статейка...
как всегда все посылают в....доки :)
#
# BASE 64
#
# encode
sub ebase64 ($;$)
{
my $res = "";
my $eol = $_[1];
$eol = "\n" unless defined $eol;
pos($_[0]) = 0;
while ($_[0] =~ /(.{1,45})/gs) {$res .= substr(pack('u', $1),
1);chop($res);}
$res =~ tr|` -_|AA-Za-z0-9+/|;
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/'=' x $padding/e if $padding;
if (length $eol) {$res =~ s/(.{1,76})/$1$eol/g;}
$res;
}
# decode
sub dbase64 ($)
{
local($^W) = 0; my $str = shift; my $res = ""; $str =~ tr|A-Za-z0-9+=/||cd;
if (length($str) % 4) {exit}
$str =~ s/=+$//; $str =~ tr|A-Za-z0-9+/| -_|;
while ($str =~ /(.{1,60})/gs) {my $len = chr(32 + length($1)*3/4);$res .=
unpack("u", $len . $1 );}
$res;
}
http://pvdlab.net
... rm * -r...BEER II INSIDE
--- Золотой дед GoldED+/W32 1.1.4.7 !!!
* Origin: IBA-7 Station (2:450/160.8)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27783ba1f150.html, оценка из 5, голосов 10
|