前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >base64加解密出现的问题

base64加解密出现的问题

原创
作者头像
莫空9081
发布于 2023-02-15 08:33:32
发布于 2023-02-15 08:33:32
2K0
举报
文章被收录于专栏:iOS 备忘录iOS 备忘录

背景

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

<!--more-->

解决方法

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

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

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java Base64加密与解密示例代码
基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符,这篇文章主要介绍了Java Base64 加密与解密,需要的朋友可以参考下!
雾海梦曦
2023/02/06
1.8K0
隐藏的换行符导致Base64加密解密失败
平日里偶尔会在调用API服务时,需要对用户与密码认证信息进行Base64加密处理,一般都用网上的在线工具进行直接操作获取。但是在客户现场环境中并没有互联网访问权限,便只能是寻求其他方法来实现Base64加密操作。起初是使用Python中的base64模块进行加密,只是操作起来较麻烦些,因为不同客户环境不一样而且也不能拷贝外部文件进去,只能是在Python交互模式下手工敲些代码。可是长久以往并不是办法,后来便发现了Linux系统其实大部都自带Base64的模块,于是便开始探索如何在Linux系统中使用Base64模块进行加解密的操作方式。
凡梦星尘
2024/11/20
1870
一份简明的 Base64 原理解析
书接上回,在 记一个 Base64 有关的 Bug 一文里,我们说到了 Base64 的编解码器有不同实现,交叉使用它们可能引发的问题等等。
mzlogin
2020/04/16
8630
一份简明的 Base64 原理解析
【小工匠聊密码学】-- Base64算法
1、Base64 概述 1.1 什么是Base64编码   可以将任意的字节数组数据,通过算法,生成只有(大小写英文、数字、+、/)(一共64个字符)内容表示的字符串数据。即将任意的内容转换为可见的字
Java小工匠
2018/07/03
8300
pdf.js预览pdf文件流(base64)
新接手一个老项目,需要改造pdf文件的预览效果,接口直接返回的pdf文件的文件流base64字符串,前端只能拿到base64来进行预览。
五月
2022/11/14
16.4K0
pdf.js预览pdf文件流(base64)
讲讲网络模块中加解密那点儿事--AES+BASE64提问理论代码
这次想来讲讲网络安全通信这一块,也就是网络层封装的那一套加密、解密,编码、解码的规则,不会很深入,但会大概将这一整块的讲一讲。
请叫我大苏
2018/08/10
1K0
讲讲网络模块中加解密那点儿事--AES+BASE64提问理论代码
Python之Base64加解密
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。
Wu_Candy
2022/07/04
1.6K0
Python之Base64加解密
Android 逆向 | 不是加密的 Base64
Base 系列还有 16/32/62/64/85/36/58/91/92 等,分别表示用不同个数的可打印字符表示二进制数据
咸鱼学Python
2020/12/02
1.1K0
Android 逆向 | 不是加密的 Base64
JAVA——Base64编解码原理及AES加解密算法的使用
Base64编码原理:将要编码的二进制(字符串、图片等都可以转换成二进制格式表示)把3个8位字节以4个6位的字节表示,然后把每个6位字节都转换成一个单独的数字并映射到base64码表中的一个字符。如果最后剩下的字节不足3个,则在后面补0,补0转换的字符用“=”表示,故编码后输出的字符串末尾可能会有一个或两个“=”。
良月柒
2019/03/19
1.2K0
关于Base64隐写那点事儿
咕咕咕的我又回来了,学校这几天在放“五一七天小长假”,加上今天的ISCC有点奇奇怪怪,所以来更一篇博客吧!今天我们来讲关于base64隐写那点事儿……
L1near
2022/11/11
1.5K0
关于Base64隐写那点事儿
base64的使用
对aaa文件进行加密 base64 aaa > aaa.txt aaa是原始文件内容,aaa.txt是加密后的内容
陳斯托洛夫斯記
2022/10/27
4800
base64的使用
Base64编码的作用分析
ase64编码本质上是一种将二进制数据转成文本数据的方案。对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)计算其十进制值,根据该值在大小为64的码表中找到对应的字符,最终得到一个文本字符串。
用户1503405
2021/10/08
1.8K0
前端 js base64解密
有勇气的牛排
2023/06/25
1.4K0
Base64 之后,你的代码会增加多少
Base64 是一种编码算法,允许你传输任何字符,而不只是 ascii 码。你可以用 Base64 传输任何数据,包括图片, 表情,视频等。从技术上讲,可以说它将 8 位字节转换为 6 位字节。
lucifer210
2019/08/21
2.7K0
Base64 之后,你的代码会增加多少
20.1 OpenSSL 字符BASE64压缩算法
OpenSSL 是一种开源的加密库,提供了一组用于加密和解密数据、验证数字证书以及实现各种安全协议的函数和工具。它可以用于创建和管理公钥和私钥、数字证书和其他安全凭据,还支持SSL/TLS、SSH、S/MIME、PKCS等常见的加密协议和标准。
王瑞MVP
2023/10/29
3591
20.1 OpenSSL 字符BASE64压缩算法
如何使用Java对图片和Base64编码进行互相转换?
图片如何转换为Base64?很多网上教程,使用StringUtil这类过时的Java包,或者使用Oracle的sun包(如:sun.misc.BASE64Decoder、sun.misc.BASE64Encoder。使用Oracle的sun包,因为许可证协议问题,在实际开发中,商用不提倡。所以这边我们不使用StringUtil或Oracle的sun包来对图片和Base64编码操作。
Mintimate
2021/03/12
4.3K0
如何使用Java对图片和Base64编码进行互相转换?
浅谈BASE64编码
很多人都以为编码(Encoding)和加密(Encryption)是同一个意思。编码和加密都是对格式的一种转换,但是它们是有区别的。编码是公开的,比如下面要介绍的Base64编码,任何人都可以解码;而加密则相反,你只希望自己或者特定的人才可以对内容进行解密。
小蜜蜂
2019/07/23
2.6K0
浅谈BASE64编码
Base64 原理
Base64 是什么?是将字节流转换成可打印字符、将可打印字符转换为字节流的一种算法。Base64 使用 64 个可打印字符来表示转换后的数据。
冬夜先生
2021/10/08
7930
什么是Base64编码?有什么用?编解码如何实现?
本次为各位小伙伴带来的是一种网络上最常见的用于传输8Bit字节码的编码方式之一,base64编码,基于C语言实现。
用户8913398
2021/08/16
11.5K0
什么是Base64编码?有什么用?编解码如何实现?
【小家java】java8新特性之---Base64加密和解密原理
Base64是一种字符串编码格式,采用了A-Z,a-z,0-9,“+”和“/”这64个字符来编码原始字符(还有垫字符“=”)。一个字符本身是一个字节,也就是8位,而base64编码后的一个字符只能表示6位的信息。也就是原始字符串中的3字节的信息编码会变成4字节的信息。Base64的主要作用是满足MIME的传输需求。 在Java8中Base64编码已经成为Java类库的标准,且内置了Base64编码的编码器和解码器。
YourBatman
2019/09/03
1.5K0
相关推荐
Java Base64加密与解密示例代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档