有时候,我无法提供整个字符串但随着截断的字符串也Base64的API可以对其进行解码。如何不理解的base64字符串如何Base64的API理解字符串的结尾,而解码
-1
A
回答
1
如何理解的base64结束串
的你到底有没有说过这的base64 API你使用,但一般他们会要求您提供字符串的长度为4个字符的倍数。 base64字符串中的每4个字符对应3个字节。
如果整个二进制数据不是3字节的倍数,最后4个字符包含填充的=
字符以指示所需的长度。有关更多详细信息,请参阅Wikipedia Base64 article中的填充部分。
0
在Base64中,每个字符代表64个值中的一个:6位值。但字节是8位值,所以base-64编码数据必须是的倍数 6和8.
那么,一个6位字符显然不会填充一个字节,但两个6位位字符(12位)不完全填充两个字节。三个6位字符(18位)填充多于两个字节,但不是三个。但是,四个6位字符(24位)恰好填充了三个8位字节。
所以base64字符串的长度必须是4个字符的倍数,以便能够用数据填充整个8位字节的倍数。这意味着您可以将base64编码的数据分割为四个字符的任意倍数,并且可以工作。但是,如果您将数据分成其他任何位置,则可能无法正常工作。
这也适用于数据的结尾。例如,如果我只有六个8位字节进行编码(40位),但是base64字符串必须是两个4位长度为6位的字符(48位),那么我就是8位数据。对于那些剩余的(部分)6位字符=
字符来指示不存在特定数据。
相关问题
- 1. python base64字符串解码
- 2. java解码base64字符串
- 3. 解码base64字符串?
- 4. 如何解码Base64字符串?
- 5. 解码编码的base64字符串
- 6. 的Python:解码base64编码字符串
- 7. 解码的base64字符串C#
- 8. 解码的base64大文本字符串
- 9. 解码从Windows Phone的base64字符串
- 10. 解码base64字符串的图像
- 11. Android中的Base64解码字符串
- 12. 解码Node.js中的Base64字符串
- 13. base64解码 - 字符串中的nul
- 14. 解码蟒蛇的base64字符串
- 15. 如何将base64字符串解码而不存储它
- 16. 解码Base64编码字符串
- 17. Base64编码/解码问题:解码后的字符串是'?'
- 18. 如何在解码Base64字符串时处理错误
- 19. 字符串编码/解码问题 - 从结尾丢失字符
- 20. 如何解码使用base64编码的图像字符串
- 21. 如何解码base64编码的字符串?
- 22. base64解码在忍者字符串
- 23. 在Java中解码Base64字符串
- 24. 在Objective-C中解码Base64字符串
- 25. 在Grails中解码Base64字符串
- 26. Base64解码图像字符串
- 27. 输入字符串为null Base64解码
- 28. 错误解码base64字符串
- 29. 需要base64解码这个字符串
- 30. 如何解码字符串解码
我正在使用commons-codec-1.4.jar.I想要传递一个输入字符串并使用Base64 API进行解码。但是我无法为少数字符串做一个截断版本。所以我需要知道如何强制结束字符串并生成部分图像,所以我需要知道将终止截断字符串并生成部分图像的通用模式。 – user2295281
@ user2295281:那么你可以在4个字符的边界处截断,或者添加适当的'='字符以使其达到4个字符的边界。请注意,如果这确实是图像数据,那么您可能不会以这种方式获得有效的图像。 –
您好我认为问题不是与Base64,但获得字节数组时,我使用BufferedImage传递BufferedImage中的字节数组bImageFromConvert = ImageIO.read(in);它示出了错误 javax.imageio.IIOException:错误读取PNG图像数据 \t在com.sun.imageio.plugins.png.PNGImageReader.readImage(未知来源) \t在com.sun.imageio.plugins.png。 PNGImageReader.read(Unknown Source) \t at javax.imageio.ImageIO.read(Unknown Source) \t at javax.imageio.ImageIO.read(Unknown Source) – user2295281