ToBase64String方法 - 理想的地方的日志 - 网易博客
来源:互联网 发布:java防止反编译 编辑:程序博客网 时间:2024/06/15 21:24
用ToBase64String方法可以在不丢失数据的情况下将字节数组转成字符串
在ToBase64String方法中,会对字节数组中的连续三字节进行一次编码,编码得的字符串长度为4位,而且得出来的4位的字符串里面的字符肯定是由大小写字母、数字(0~9)、+、/组成,例如有一个字节数组{212,36,25,23,45,65},ToBase64String方法会将这个数组分成2个数组,分别为{212,36,25}和{23,45,65},{212,36,25}计算出来的字符串是“1CQZ”,而{23,45,65} 是“Fy1B”,如果是{212,36,25,23},则先分成两个数组,{212,36,25}和{23},{212,36,25}已经计算过了,但{23}不足三字节,怎么办?{23}会转换成“Fw==”,所以{212,36,25}和{23,45,65},{212,36,25}转换出来的字符串是“1CQZFy1B”,{212,36,25,23}是“1CQZFw==”。
为什么会这样转换呢?
在ToBase64String中,利用了52个大小写字母,10个数字,“+”和“/”一共64个字符组成三个不同的矩阵,因为这三个矩阵比较大,不好放出来,所以你可以在附件中看到这在个矩阵的情况。当一个数组中只由1个字节组成时,在ToBase64String方法中只会用到第一个矩阵,当由2个字节组成时,在ToBase64String方法中会用到第一和第二个矩阵,当由3个字节组成时, ToBase64String方法中就会用全1、2、3这三个矩阵。
而在这三个矩阵中,是一阵扣一阵。例如要用到第三个矩阵,就要求从第一个矩阵计算出第二个矩阵的起码编码,根据字节的大小计算第二矩阵经过偏移量得出的编码,再由每二矩阵编码找到第三矩阵的偏移编码,找到第三矩阵编码后,最后由第一矩阵的纵码+第二矩阵纵码+第三矩阵纵码+第三矩阵横码=最后的转换字符串.
ToBase64String方法 - 理想的地方的日志 - 网易博客
- ToBase64String方法 - 理想的地方的日志 - 网易博客
- ToBase64String方法的学习
- wordpress同步csdn博客新浪博客网易博客的方法
- ToBase64String方法
- vivi的Makefile分析 - xgc94418297的日志 - 网易博客
- 北京 怀揣理想而又埋葬理想的地方!
- FlexGrid合并单元格 - zhengjiazeng的日志 - 网易博客
- FlexGrid合并单元格 - zhengjiazeng的日志 - 网易博客
- vivi源码分析 - xgc94418297的日志 - 网易博客
- vivi源码分析 - xgc94418297的日志 - 网易博客
- vivi源码分析 - xgc94418297的日志 - 网易博客
- 向vivi中加入命令 - xgc94418297的日志 - 网易博客
- uboot移植文档(一) - xgc94418297的日志 - 网易博客
- Socket网络编程 - xgc94418297的日志 - 网易博客
- 我的网易博客
- 我的网易博客
- 我的网易博客
- 网易博客不支持的
- 淘宝考试题目与答案
- AES对称加密算法原理 - guo2777的专栏 - CSDN博客
- 把图象文件转换成XML格式文件(二进制转字符)
- 向着第二层 第一阶段第十六天
- base64_二进制转字符
- ToBase64String方法 - 理想的地方的日志 - 网易博客
- Ubuntu gcc安装编译命令
- [NPOI版]C#.NET将数组导入Excel源代码
- Maven 关键字解释
- MVN 简介
- 提供一个Qml 真机debug信息输出组件
- Proteus 7.5 sp3破解版下载(附带安装说明)(2009-12-24 08:37:34)
- MAVEN
- oracle sys_connect_by_path实现行列转换