SM4解密報錯


最近項目中需要用國密SM4對傳輸報文進行加密,於是寫了個簡單的測試案例,對於簡單的字符串加密解密是沒問題的,但是對比較長的報文進行解密時,會報出異常信息:Last block incomplete in decryption,想到會不會是因為某些特殊字符影響到了,於是使用Base64在加密后進行編碼,在解密前進行解碼,問題真的解決了。
原因可能是以下兩個方面:
1.使用Base64編碼使得密鑰具有可讀性,方便密鑰的發放;
2.使用Base64編碼防止意外生成的系統定界字符(編碼為base64之前 數據是以字節數組存放, 里面任何二進制字符都是可能的。如果有的語言以\0作為字符串結束標志,正好字節數組里面有\0的話,可能會有問題);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM