什么是base64呢?
它是一种加密算法,有着广泛的应用和支持,但却是当今最弱的编码标准之一。它主要是对明文转换后的二进制序列做处理,使之变为不能被人直接识别的形式。
加密步骤:
1. 取得明文对应的二进制编码;
2. 每3个字节组成一个单元,再把每个单元内的3字节变成4个字节,变化方法是:把原来的3*8=24个比特位,分成 4*6=24个比特位,且在每6个比特位前面加2个0,这样就组成了4个字节(如果,序列最后不够3个字节,例如剩余2 个字节或是1个字节,也要看成是一个单元最后变成4个字节,不足的用=号表示);
3. 查找base64位编码表,把转换后的字节用对应的字符表示,这样,原来的明文就用base64加密了;
举个例子:
字符串“A”,进行Base64编码,如下所示:
字符 A
ASCII码 65
二进制码 01000001
4个6位二进制码 010000 010000
4个8位二进制码 00010000 00010000
十进制码 16 16
字符表映射码 Q Q = =
这个一个字节,也要把它当成一个单元来处理。首先,8位比特安装6位进行分解,剩余2位不足6位要在后面补0,分解完后,要在前面加0组成2个字节,因为不足4个字节,后面要用2个=号来补。最后,经过base64加密后,原来的明文“A”就被加密为“QQ==”。加密后的大小比原来的多了约1/3,有时候是比1/3多,最后剩一个字节或2个字节时。
实现该算法的开源框架:
http://www.sauronsoftware.it/projects/javabase64/download.php
分享到:
相关推荐
Base64加密算法的C语言实现, 比较精简
Base64编码的核心原理是将二进制数据进行分组,每24Bit(3字节)为一个大组,再把一个大组的数据分成4个6Bit的小分组。由于6Bit数据只能表示64个不同的字符(2^6=64),所以这也是Base64的名字由来。
Base64加密算法.rar
java代码。支持加密与解密,Base64加密算法
c++实现base64算法加密解密,不需要修改,直接运行即可
Base64加密算法java版
Base64加密算法源码(java)pdf版
基于Delphi的Base64加密算法演示代码..rar
算法类base64 的操作 字符串的加密技术,算法类base64 的操作 字符串的加密技术 as 版本
C# 加密算法Base64算法,直接调用即可。。
C#语音BASE64加密解密操作类案例,内含加密和解密实例简单使用方法调用,可供C#加密解密新学者参考学习之用。
本资源是集合了SMS4和自定义的Base64加密算法。SMS4加密算法中提供了如下接口: private static byte[] encode16(byte[] plain, byte[] key); private static byte[] decode16(byte[] cipher, byte[] key); private ...
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
对于一些加密传输的字符串要用到base64加密算法,提供这个文件仅供参考
主要介绍了Java实现的Base64加密算法,结合实例形式分析了Java实现的base64编码转换相关使用方法及操作注意事项,需要的朋友可以参考下
BASE64是一个很通用的算法,一般的语言开发环境都有其标准的函数调用,但是其源代码是什么呢?此资源提供了源代码。里面有关于算法和内存操作的知识,看看源代码,自己改造一下,对自己也是一个挑战。多练手,提升...
base64加密和解密算法完整事例代码,base64加密和解密算法完整事例代码
java base64 算法 java实现base64加密 解密