Base64加密与解密
来源:互联网 发布:淘宝联盟怎么用 编辑:程序博客网 时间:2024/05/29 04:48
Base64加密方式是将原文经过简单的字符转换,转换成不容易被肉眼看出的字符编码,Base64加密常用在HTTP环境下传递较长的标识信息确保不破坏HTTP的请求格式,Base64的加密原理是将3个8位二进制转换为4个6位二进制,不足6位时高位补0 ,以确保其值为64个可能,这就是Base64来源。如下图就是Base64标准中的编码表。
取个例子:
需要加密的原文是“ABC”这三个字母,通过ASCII表得到这个三个字母的值的二进制表示为(去查ASCII表):
字符A:01000001 (65)
字符B:01000010 (66)
字符C:01000011 (67)
所以需要加密的原文的码流为01000001 01000010 01000011,经过转换成4个6位二进制得到
010000 010100 001001 000011
然后高位补0得到的8位二进制得到
00010000 00010100 00001001 00000011
16 20 9 3 所对应的十进制为
Q U J D Base64编码
由此可以看到,“ABC”经过Base64加密后变成了“QUJD”,从长度可以看出增加了1/4,从结果上来说,加密后的字符只有64种可能。其实想想,之所以会把8位转换成6位,也是这样的道理。毕竟2的6次方减1等于63!这也是Base64加密的原理,Base64解密的原理恰好是加密的反向过程,过程是可逆的。当反向解码后就会得到原文。虽然Bae64加密的数据安全性不是很高,但是肉眼上也不太容易看出来原文。发送Email时对内容的加密就是采用的Base64,这是有历史原因的。
以下两种情况:
1、中文加密:只加密一个中文汉字时,由于一个中文汉字是两个字节!所以从16位自动填充到24位bits,所得Base64加密结果是4个字节。
2、 原文(bits)%24 != 0 ,自动填充成24bits的整倍数。
关于Base64更多的用法这里就不用说了,具体的java代码实现见:http://download.csdn.net/detail/main_stage/7507185- Base64加密与解密
- Base64加密与解密
- BASE64加密与解密
- Base64加密与解密
- Base64加密与解密
- C# Base64加密与解密
- BASE64 的加密与解密
- golang base64加密与解密
- Base64的加密与解密
- Base64的加密与解密
- Base64数据加密与解密
- Android - Base64加密与解密
- BASE64 加密与解密的使用
- base64加密与解密Java实现
- Java加密与解密的艺术-Base64
- base64 加密解密函数
- BASE64加密/解密
- BASE64加密解密
- JavaScript权威指南第20章 客户端存储
- 【C语言天天练(九)】动态内存分配
- 章4
- ibus开机不出现图标和选字栏(记录)
- 黑马程序员----java基础加强(1)
- Base64加密与解密
- 题目1459:Prime ring problem(素数环问题)
- 网站构建三(身份验证)
- 基于cocos2d-x的2D空间中的OBB(Orient Bounding Box)碰撞检测算法
- struts2配置session超时,权限访问,异常日志等拦截器
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
- Hibernate一对多双向关联映射
- linux mysql 创建用户并授予权限
- JAVA-6大原则