为什么不同字符串的解码结​​果相同?

时间:2013-03-21 09:00:18

标签: perl

$ perl -MMIME::Base64 -e 'print decode_base64("c3luX2Fja0AxNjMuY29t");'
syn_ack@163.com

$ perl -MMIME::Base64 -e 'print decode_base64("AHN5bl9hY2tAMTYzLmNvbQ");'
syn_ack@163.com

编码字符串不同,但解码结果相同,为什么?

2 个答案:

答案 0 :(得分:8)

您的第二个字符串AHN5bl9hY2tAMTYzLmNvbQ decodes to

�syn_ack@163.com

终端软件可能无法打印第一个位置的异常字符。

答案 1 :(得分:1)

与你说的相反,它们不一样:

$ perl -MMIME::Base64 -E'
   say
      decode_base64("c3luX2Fja0AxNjMuY29t") eq
      decode_base64("AHN5bl9hY2tAMTYzLmNvbQ") ?1:0'
0

那他们是什么?

$ perl -MData::Dumper -MMIME::Base64 -e'
   $Data::Dumper::Useqq = 1;
   print Dumper(decode_base64("c3luX2Fja0AxNjMuY29t"))'
$VAR1 = "syn_ack\@163.com";

$ perl -MData::Dumper -MMIME::Base64 -e'
   $Data::Dumper::Useqq = 1;
   print Dumper(decode_base64("AHN5bl9hY2tAMTYzLmNvbQ"))'
$VAR1 = "\0syn_ack\@163.com";