总是听到BASE64,其实对它并不了解。此文记录一些BASE64的基本概念。
1. BASE64是加密?
不,虽然有"加密"后不是明文,但逆编码的规则明确,所以“防君子不防小人”,只是没办法一眼看出内容罢了。它是一种"编码"。
2. BASE64的大概算法:
把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。——所以编码后大概会多出1/3的长度
3. BASE64编码没有安全的加密效果,发明这个编码来使消息长度多出1/3,这不是画蛇添足么?
不是的。这得看BASE64的来源。在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0!那邮件内容不就变了。结合BASE64的算法,就可以看出BASE64绕过了最高位变成0的问题。
4.传说中比JDK原生BASE64算法实现要好的开源JAVA实现(好绕口):
http://migbase64.sourceforge.net/
5.相关资料:
http://www.5dmail.net/html/2004-1-30/200413084348.htm 上面的内容就是从里面摘录出来的
http://zttcn.iteye.com/blog/153766 上面第3点提到的非ASCII字符有8位的问题,这篇文章里列举了具体的各种字符集的位数,比如咱常见的ISO-8859-1字符集,就是8位的咯
分享到:
相关推荐
通过学习和理解这些代码,开发者不仅可以掌握Base64编码的基础知识,还能了解到VB6.0处理文件和字符串的方法,这对于进行类似的数据传输和存储工作大有裨益。 总之,Base64编码是IT行业中一个重要的概念,尤其在...
Base64是一种网络上常见的数据编码方式,它将任意二进制数据转化为可打印的ASCII字符,以便在电子邮件、文本协议...了解这些基础知识,开发者就能在Delphi项目中有效地处理Base64编码和解码任务,满足不同场景的需求。
总的来说,理解并熟练运用BASE64编码和十六进制转换对于从事IT工作的人来说至关重要,无论是数据的传输、存储还是加密解密,这些基础知识都发挥着基础性的作用。"编码转换工具"则提供了一个便捷的平台,帮助用户在...
下面我们将详细探讨C#中如何实现文件到Base64的转换,以及这个过程涉及的相关知识点。 首先,我们需要理解Base64编码的基本原理。Base64编码将每3个字节的二进制数据转换为4个字符的ASCII字符串,每个字符对应一个...
在JavaScript中,Base64编码和解码是前端开发中的基础技能。虽然原生API提供了基本功能,但在处理特定场景如URL安全或非ASCII字符时,使用第三方库如`Base64.js`会更灵活和强大。了解这些知识能帮助开发者更好地应对...
理解它们的特性和转换方法对于开发人员来说是非常基础且实用的知识。 首先,`HexString`(十六进制字符串)是一种将二进制数据表示为十六进制数字的字符串形式。每个字节由两个十六进制字符表示,因此一个32位的二...
Base64编码是将每3个字节(24位)的数据分成4组,每组6位,然后将这6位数据映射到64个字符之一,这些字符包括大小写字母、数字和两个特殊字符('+', '/')。最后,如果原始数据不是3的倍数,会在末尾加上0位来补足,用...
通过学习如何在Linux环境下使用C语言实现Base64编码和解码,开发者不仅可以深化对C语言编程的理解,还能掌握网络通信、数据编码和系统级编程的基础知识,这对任何IT专业人员来说都是非常有价值的技能。
本话题将详细讨论两个特定的文件:`jquery-1.12.4.min.js` 和 `jquery.base64.js`,以及它们在Web开发中的作用和相关知识点。 首先,`jquery-1.12.4.min.js` 是jQuery框架的一个版本,它是一个广泛使用的JavaScript...
总的来说,易语言Base64编码源码涉及的知识点包括:易语言基础语法、数据类型(如字节集、整数和字符串)、位运算、字符串操作、数据编码理论(如Base64编码)以及自定义函数的编写。对于初学者来说,这是一个很好的...
通过研究这些脚本,开发者不仅可以学习到Base64编码的基础知识,还可以了解到如何在实际项目中优化和调整编码算法,以满足特定的需求。对于任何涉及数据编码、传输或存储的IT从业者来说,这些知识都是非常宝贵的。
通过阅读这两份文件,你可以深入了解C语言如何实现Base64算法,包括内存管理、字符串操作以及循环处理等基础知识。 这个源代码示例对于理解Base64工作原理和学习C语言编程都十分有价值。你可以学习到如何用C语言...
易语言是一种基于中文编程的程序设计语言,它旨在降低编程技术门槛,让更多人能够进行软件开发。...通过这样的实践,开发者不仅可以学习到易语言的基础知识,还能深入理解数据编码原理和API调用技巧。
它将二进制数据转换为可打印的64个字符集,包括大小写字母、数字以及"+"和"/",并用"="作为填充。`base64.cpp` 文件很可能实现了Base64编码和解码的函数,而`base64.h` 提供了相应的接口声明。 在`main.cpp` 文件中...
Base64是一种网络上常用的编码方式,主要用于将二进制数据转换为可打印的ASCII...总之,Base64加密算法的C语言实现涉及对二进制数据的处理、位运算以及字符串编码,理解这些基础知识对于实现和理解Base64编码至关重要。
1. **Base64编码原理**:Base64编码是一种基于64个字符的编码方式,这些字符包括大小写字母、数字和两个特殊字符('+', '/'),以及一个等于号'='。Base64编码将每3个字节的二进制数据转换为4个Base64字符,如果原始...
- Base64编码基于64个可打印的ASCII字符,包括大小写字母、数字和两个特殊字符`+`和`/`,以及一个用于填充的字符`=`。 - 每3个字节(24位)的二进制数据被分为4组,每组6位,然后将这6位转化为对应的Base64字符。...
4. **安全性**:除了基础的Base64编码和解码,这个类可能还提供了一些安全特性,比如使用安全的随机数生成器来填充额外的字节,以增加加密的安全性,或者提供了对文件内容进行其他形式的加密,如AES、DES等。...
首先,让我们了解这三项技术的基础知识: 1. **Base64编码**:Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式,以便在电子邮件等文本环境中传输。它通过将每3个字节表示为4个字符,确保数据的安全...
在本项目中,我们利用STM32F103ZET6型号的微控制器从SD卡读取图片,然后对图片数据进行Base64编码,并通过串口将编码后的数据发送出去。这一过程涉及到了几个关键的技术点,下面将详细阐述。 首先,我们需要理解STM...