2

我在 base36 中有一条消息(即:[a-z0-9]+),我想用 base36 键对它进行异或。这可能吗?最简单的方法是什么?可以用linux上的单线来完成吗?

4

1 回答 1

4

在命令行上使用 perl 进行异或运算

示例异或编码

perl -e '$a="abc"; $k="flock"; use MIME::Base64; print encode_base64($a ^ $k)'
Bw4MY2s=

示例异或解码

perl -e ' $k="flock"; use MIME::Base64; $a=decode_base64("Bw4MY2s="); print $a ^ $k'
abc

base36 适用于数字并提供字符串,因此您可以在这些上使用类似的方案。但是输出可能无法打印

perl -e 'use Math::Base36 qw/:all/; $k=encode_base36(35); $m=encode_base36(10); print ($m ^ $k)'

要完成这项工作,您必须安装 CPAN 模块“Math::Base36”。这在 ubuntu 12.04 上以“libmath-base36-perl”的形式提供

于 2013-06-05T16:27:02.877 回答