今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

base64加密出現的問題

背景#

項目中仿 QQ 閃照功能,圖片的發送邏輯是,先轉 base64, 然後加密,最後加密後的字符串作為文件發送;在處理接收的時候,按照先下載文件,然後讀取文件內容,再解密,然後按照 base64 字符串的方式生成圖片,卻一直失敗.

解決方法#

起初以為是,加解密的問題,仔細排查後,排除了這個假設。最後把解密後的字符串拷貝到 VSCode 中仔細觀察發現,其中多了很多\r\n.

搜索後發現,是 base64 加密的問題,由於 base64 一行不能超過 76 字符,超過就會添加回車換行符 (在 Windows 中是\r\n, 在 Linux 中是\n). 而解析後其中的回車和換行就是錯誤信息,所以解決方法是,把\r\n替換為空字符串,然後再去生成圖片,就正常了.

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。