MIME::Base64 - Encoding and decoding of base64 strings
use MIME::Base64;
$encoded = encode_base64('Aladdin:open sesame'); $decoded = decode_base64($encoded);
The following functions are provided:
Any character not part of the 65-character base64 subset is silently ignored. Characters occurring after a '=' padding character are never decoded.
If the length of the string to decode, after ignoring non-base64 chars, is not a multiple of 4 or if padding occurs too early, then a warning is generated if perl is running under "-w".
If you prefer not to import these routines into your namespace, you can call them as:
use MIME::Base64 (); $encoded = MIME::Base64::encode($decoded); $decoded = MIME::Base64::decode($encoded);
The following exception can be raised:
use MIME::Base64 qw(encode_base64);
open(FILE, "/var/log/wtmp") or die "$!"; while (read(FILE, $buf, 60*57)) { print encode_base64($buf); }
or if you know you have enough memory
use MIME::Base64 qw(encode_base64); local($/) = undef; # slurp print encode_base64(<STDIN>);
The same approach as a command line:
perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' <file
Decoding does not need slurp mode if every line contains a multiple of four base64 chars:
perl -MMIME::Base64 -ne 'print decode_base64($_)' <file
Perl v5.8 and better allow extended Unicode characters in strings. Such strings cannot be encoded directly, as the base64 encoding is only defined for single-byte characters. The solution is to use the Encode module to select the byte encoding you want. For example:
use MIME::Base64 qw(encode_base64); use Encode qw(encode);
$encoded = encode_base64(encode("UTF-8", "\x{FFFF}\n")); print $encoded;
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Distantly based on LWP::Base64 written by Martijn Koster <m.koster@nexor.co.uk> and Joerg Reichelt <j.reichelt@nexor.co.uk> and code posted to comp.lang.perl <3pd2lp$6gf@wsinti07.win.tue.nl> by Hans Mulder <hansm@wsinti07.win.tue.nl>
The XS implementation uses code from metamail. Copyright 1991 Bell Communications Research, Inc. (Bellcore)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |