1
A
回答
2
MIME::Base64::decode_base64
沒有「解碼失敗」。它將簡單地忽略任何不適合的東西,即不是有效的base64字符的字符,末尾不完整的填充或末尾標記'='後面的任何數據。因此,它總是會返回一些東西,最糟糕的情況是這將是一個空字符串。
請注意,這種行爲甚至沒有錯。至少某些不同的Base64標準明確要求跳過無效字符,並且在'='後面沒有填充不完整或數據的情況下,沒有定義錯誤處理。但是,對於無效數據,MIME :: Base64的輸出與其他實現可能會有所不同。
2
當使用MIME :: Base64的decode_base64
時,解碼總是被認爲是成功的。不允許的字符被忽略。
你能嚴格驗證您使用有一個有效的base64如下:
my $c1 = '[A-Za-z0-9+/]';
my $c2 = '[AQgw]';
my $c3 = '[AEIMQUYcgkosw048]';
die "Invalid data\n"
if $s !~ m{^(?:$c1{4})*+(?>$c1(?>$c2==|$c1$c3=)|)\z};
空白經常被用來在中間,所以你可能要允許空白。 (實際上,encode_base64
默認在其輸出中包含空格!)
=
經常被忽略,因此您可能希望允許缺少=
。
如果您擔心數據損壞,請在數據中包含數據散列。
相關問題
- 1. base64編碼然後解碼失敗
- 2. Google語音API的Base64解碼失敗
- 3. 如何確定是否通過imap base64編碼郵件獲取?
- 4. 如何確定電子郵件是否是Base64編碼的?
- 5. UIImage Base64編碼失敗
- 6. 如何檢查解析是否失敗?
- 7. MIME Base64編碼寬字符
- 8. 如何解碼Base64?
- 9. 如何確定當前運行的RSpec測試是否失敗?
- 10. 如何確定從Runtime.exec()調用的mysqldump是否失敗
- 11. 如何確定腳本中SQL語句是否失敗
- 12. 是否有可能base64解碼base64編碼消息的一部分
- 13. 你如何在Perl中對Base64進行編碼和解碼連接字符串?
- 14. 從數據庫中取出後解碼base64映像失敗
- 15. 爲什麼我的函數從base64解碼失敗?
- 16. 如何解碼的base64,然後再將其放入圖像中的perl
- 17. JSON解碼失敗
- 18. rakudo的Perl 6模塊是否存在解析MIME?
- 19. 如何解碼MessageDigest,Base64
- 20. cabal安裝mime失敗
- 21. 解碼/編碼MIME頭文件(base64)的最佳軟件包是什麼?
- 22. 確定C編譯器是否工作失敗,輸出如下
- 23. 如何確定是否需要密碼
- 24. 確定execvp是成功還是失敗
- 25. Spring Email Mime Base64 Images
- 26. AVAssetExport失敗「無法解碼」
- 27. perl ping失敗
- 28. Perl:調試解釋器失敗?
- 29. 密碼解密失敗
- 30. Basic C#Mime解碼