今是昨非

今是昨非

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

base64加密出现的问题

背景#

项目中仿 QQ 闪照功能,图片的发送逻辑是,先转 base64, 然后加密,最后加密后的字符串作为文件发送;在处理接收的时候,按照先下载文件,然后读取文件内容,再解密,然后按照 base64 字符串的方式生成图片,却一直失败.

解决方法#

起初以为是,加解密的问题,仔细排查后,排除了这个假设。最后把解密后的字符串拷贝到 VSCode 中仔细观察发现,其中多了很多\r\n.

搜索后发现,是 base64 加密的问题,由于 base64 一行不能超过 76 字符,超过就会添加回车换行符 (在 Windows 中是\r\n, 在 Linux 中是\n). 而解析后其中的回车和换行就是错误信息,所以解决方法是,把\r\n替换为空字符串,然后再去生成图片,就正常了.

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。