perl base64 使用 url 安全字符编码

Ram*_*Ram 3 perl base64

在 perl 脚本中,我使用 base64 对字符串进行编码,但我希望输出是 URL 安全的 Base64 包括像 / 或 + 这样的字符,它们在 URL 中被转换

我怎样才能避免这种情况?

Mar*_*rty 7

幸运的是,“GAAS”已经为您完成了。该模块名为MIME::Base64,如果您看到 POD 页面的一半左右,该模块包括两个功能;

encode_base64url( $bytes )

decode_base64url( $str )

其中“根据用于“URL 应用程序”的 base64 方案进行编码和解码。这是 base64 编码的一种变体,它不使用填充,不会将字符串分成多行并使用字符“-”和“_”代替"+" 和 "/" 以避免使用保留的 URL 字符。"

默认情况下不会导出这些函数 - 这意味着您需要在使用模块时询问它们。例如:

use MIME::Base64 qw(encode_base64url decode_base64url);
my $str = "Hello World";
my $b64_url = encode_base64url($str);
print $b64_url, "\n";
print "Original string: ", decode_base64url($b64_url);
exit 0;
Run Code Online (Sandbox Code Playgroud)