2016-08-08 2 views
0

я получаю некоторые проблемы с использованием PERL MIME :: Base64 :: decode_base64MIME :: Base64 :: decode_base64 неправильные символы

Вот мой код:

#!/usr/bin/perl 
use MIME::Base64; 
$string_to_decrypt="lVvfrx23jX7vX3HghyJGxo4oivqBIg"; 
$content=MIME::Base64::decode_base64($string_to_decrypt); 
open(WRITE,">/home/laurent/decrypted.txt"); 
print WRITE $content; 
close(WRITE); 
exit; 

Использование онлайн-декодера (как https://www.base64decode.org/) результат должен быть:

Но в моем файле, я получаю:

<95>[߯^]·<8d>~ï_qà<87>"FÆ<8e>(<8a>ú<81>" 

Я не знаю, как избавиться от:

<95>, ^], <8d>,<87> .... 

Благодаря Laurent

+1

Совет: base64 - это алгоритм кодирования. Это не алгоритм шифрования, поскольку секрет (ключ) отсутствует. Таким образом, говорят, что дешифрование 'decode_base64' является неуместным. – ikegami

ответ

0

Это явно не текст, поэтому не удивительно, что не делает правильно, когда печатается в виде текста. base64decode.org фактически производит тот же самый правильный результат, как decode_base64, что следующие байты:

95.5B.DF.AF.1D.B7.8D.7E.EF.5F.71.E0.87.22.46.C6.8E.28.8A.FA.81.22 

Вы можете использовать одно из следующих действий, чтобы удалить символы, определенные, но это наиболее определенно неправильно, что нужно делать.

$content =~ tr/\x1D\x87\x8D\x95//d; 
    -or- 
$content =~ s/[\x1D\x87\x8D\x95]//g; 
Смежные вопросы