base64加密出现的问题
发表于|更新于
|浏览量:
背景
项目中仿QQ闪照功能, 图片的发送逻辑是, 先转base64, 然后加密, 最后加密后的字符串作为文件发送; 在处理接收的时候, 按照先下载文件, 然后读取文件内容, 再解密, 然后按照 base64 字符串的方式生成图片, 却一直失败.
解决方法
起初以为是, 加解密的问题, 仔细排查后, 排除了这个假设. 最后把解密后的字符串拷贝到VSCode中仔细观察发现, 其中多了很多\r\n.
搜索后发现, 是base64加密的问题, 由于base64一行不能超过76字符, 超过就会添加回车换行符(在 Windows中是\r\n, 在Linux中是\n). 而解析后其中的回车和换行就是错误信息, 所以解决方法是, 把\r\n替换为空字符串, 然后再去生成图片, 就正常了.
参考
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-09-05
MapManagerSDK集成记录
背景最近集成MapManagerSDK,遇到了几个问题这里记录一下: 问题一: 对接文档中提示的导入GMObjC算法SDK方式如下,导入后编译不通过,提示:"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4 pod 'GMObjC','3.0.0' 问题二: 导入MapManager后,QMUI库或者其他第三方库,原本正常的,现在报错编译不通过。 问题三: 上面都解决了,编译成功,一启动就崩溃。 解决:问题一"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4的解决很简单,改为pod 'GMObjC',安装最新版即可。 问题二,查看后,发现报错的地方是属性或者方法中使用了debug或者release定义变量。但是为什么之前没有问题,导入MapManagerSDK后,就报错了呢?仔细排查后发现...
2025-08-21
关于我用CodeBuddy开发了几个APP的体验
背景一直想写,但是太忙了,用CodeBuddy新开发iOSAPP,又同时想做鸿蒙APP,好家伙,是真的忙不过来。 先说体验:我觉得CodeBuddy是最厉害的,(在座的谁赞成,谁反对),🤪,就这么说吧,我用过Trae,Cursor, Windsurf,还申请了Kiro,综合下来,我觉得目前CodeBuddy对于我来说是最厉害的。 我最早用的是Trae,一开始国际版我就用了,使用期间开发了一个app吧,用着用着就智障了,就是本来好好沟通着,突然就感觉对方变傻了,还把项目修改坏了,辛辛苦苦干了好几天,一下子回到解放前了……如果是用量达标,我倒是宁可他提醒我用量达标,也不希望换成一个傻子,就像你跟一个人聊得正投缘,觉得是知己,突然间她流着口水变成了傻子,这换谁也接受不了啊🤣 噢噢,忘了说背景,我是用这些工具做app开发,从头开始开发。所以上面的体验仅供参考。 优点先说优点: 开发快速,只需要说一句话,就能快速搭建一个APP的框架,实现基本功能。 不依赖语言,通过类似的工具,模糊了开发语言的鸿沟,不必说必须学会了某个开发语言,才能开发某种APP或网站,初步能实现”任何人只要有想...
2021-08-18
Flutter布局基础——自定义BottomNavigationBar
Flutter布局基础——自定义BottomNavigationBar背景这里我们来尝试实现一个不规则的 BottomNavigationBar,首先了解两个系统组件: floatingActionButton和BottomAppBar floatingActionButtonfloatingActionButton用于创建一个浮动的按钮,有两种样式:一种是圆形的纯图标的;一种是椭圆的带有图标或文案的。 示例如下: 123456789101112131415161718192021222324252627282930313233343536373839404142void main() => runApp(const MyApp());/// This is the main application widget.class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); static const String _title = ...
2022-04-20
Algorithem_Depth-First Search
733. Flood FillAn image is represented by an m x n integer grid image where image[i][j] represents the pixel value of the image. You are also given three integers sr, sc, and newColor. You should perform a flood fill on the image starting from the pixel image[sr][sc]. To perform a flood fill, consider the starting pixel, plus any pixels connected 4-directionally to the starting pixel of the same color as the starting pixel, plus any pixels connected 4-directionally to those pixels (also wit...
2024-03-13
Xcode 15.3 Archive失败
Xcode 15.3 Archive失败背景昨晚升级 Xcode 到 15.3,今天打包的时候发现 Archive 失败,提示:Call parameter type does not match function signature!,仔细看报错里是和HandyJSON相关的提示。 解决起初以为和 Pod 库有关系,但是找同事确认后,发现低于 Xcode 15.3 的版本是可以打包成功的,但是 Xcode 15.3 的版本就报错了。然后搜索HandyJSON Call parameter type does not match function signature!,发现了这个,Building HandyJSON in Swift 5.10 throws a fatal error ,是Swift 5.10 编译 HandyJSON报错了。目前HandyJSON官方还未解决。 暂时的解决方法是: 在 Pod 的 Target 中找到 HandyJSON, 然后设置Optimization Level为 None和No Optimization,如下图: 然后再次尝试 A...
2024-04-11
Mac M2芯片安装Picgo 打不开
Mac M2芯片安装PicGo 打不开背景Mac M2 芯片,PicGo安装后打开提示PicGo 已损坏,无法打开。 解决起初以为是打开的方式不对,因为有些新APP,从 LaunchPad 中打开会报错,从 Application/中打开一次就可以了;但是这个从Applicaiton中打开也报这个错; 然后以为是下载的版本不对,是不是下载的不是 arm64 芯片的,于是又专门去下载了一次。结果再次打开还是报这个错。 搜索了一下发现,解决方法如下: 在终端输入: 12345# sudo xattr -r -d com.apple.quarantine 你的APP路径sudo xattr -r -d com.apple.quarantine /Applications/PicGo.app Ps: 然后再备注一个 PicGo 设置 Github图床一直失败,可以看下分支是不是 main,PicGo默认是 master,所以分支也要改对。