我正在使用 Perl CBC 加密和解密消息,但我收到的消息有时可能格式不正确。现在,如果我对格式错误的消息运行解密,我会收到错误并且程序会死掉:
Ciphertext does not begin with a valid header for 'salt' header mode at /tmp/test.pl line 26.
处理此问题的正确/最佳方法是什么?我可以把它放在一个 eval 块中并检查错误,例如:
eval {
my $decrypted = $cipher->decrypt_hex($malformed_message);
}
if ($@) {
print "Well, that didn't work!\n";
}
但我想知道是否有更好的方法?如果 Crypt::CBC 没有得到很好的输入,而不是提供错误代码,它就完全死掉了,这似乎不太好。