实验: Base64开辟空间的估算 + 数据比对图表绘制
来源:互联网 发布:seo服务 编辑:程序博客网 时间:2024/04/28 03:33
需求: 以前对xBuffer进行Base64, 都是开xBuffer *2长度的空间, 太浪费了.
想通过实验的方法,来确定密文相对于原文的倍数.
1Bytes, 16Bytes, 256Bytes, 512Bytes, 1K, 1M, 10M, 100M, 1G, 这样确定下来.
画出一张图表,看看是否是线性, 或者有其他精确的定义. 图表直接在程序中画,不手工做了.
找到了Base64密文的精确长度公式, 不用挨个去计算了.
Base64解码的长度公式
两个公式符合Base64编解码的定义.
<2011_0227>
用程序把Base64和原文的数据对照画出来了, 不同数据的图表对比,大同小一异.
用到Base64开辟空间的时候,按照公式直接进行开辟。用程序画出数据比对线的意义在于图表绘制本身.
可以看出, Base64之后的输出线有一个4个字节的台阶线, 当原文线性增长时, 密文呈现一条斜率更高的台阶线跟随原文增长.
这里我用到了cedric_moonen的CChartCtrl, 总体效果非常棒,在这个画Base6中发现的BUG, 我已经修正. 告知作者后,他还没有更新.
CChartCtrl原版url:
<<High-speed Charting Control>>
http://www.codeproject.com/KB/miscctrl/High-speedCharting.aspx?msg=3787437#xx3787437xx
修改版本下载点:
http://download.csdn.net/source/3047447
/**
<2011_0227_2259><home><LostSpeed><Base64密文长度的估算V1.0.0.1>
* 使用了C++版的Base64类,
类本身有接口计算Base64和UnBase64所需开辟空间容量的计算
* 使用了cedric moonen的CChartCtrl(High-speed Charting Control)
修正了此应用中,发现的一些BUG
* 这个CChartCtrl适用于画2D数据图(线状图, 条形图)
非常易于扩展, 可以继承新的轴类,数据类, 用于别的用途
* CChartCtrl修改版的效果在:
http://blog.csdn.net/LostSpeed/archive/2011/02/23/6201645.aspx
* 原版在:
http://www.codeproject.com/KB/miscctrl/High-speedCharting.aspx?msg=3787437#xx3787437xx
开发环境: winxpsp3 + vc6Sp5 + psdkForVc6 + xtreme13.2.1
备注: 如果没有装xtreme, 去掉xtreme相关,编译过可用. 主要看点是那个图表类,用以来还算方便。效果非常棒,非常易于扩转.
*/
- 实验: Base64开辟空间的估算 + 数据比对图表绘制
- 估算表占用的空间
- canvas 绘制大乐透数据图表
- WPF 自定义的图表(适用大量数据绘制)
- WPF 自定义的图表(适用大量数据绘制)下
- 绘制数据图表的又一利器:C3.js
- 可视化图表教程:业务数据地图的绘制
- 不开辟用于交换数据的临时空间,完成字符串的逆序
- 不开辟用于交换数据的临时空间完成字符串的逆序
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 面试:不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 不用开辟数据的临时空间,怎么完成字符串的逆转?
- 如何动态开辟二维空间的问题,
- 堆空间的开辟与释放
- C# 反射
- PCI9054芯片接口设计中若干问题的深入研究
- 足彩看盘
- Android各个版本之间的区别(二)
- JS中this的总结
- 实验: Base64开辟空间的估算 + 数据比对图表绘制
- spring定时器
- PCI9054数据传输DMA设置过程
- 多线程 Thread
- 破路由器帐号和密码
- js删除数组元素
- C# 循环赋值
- Google在Codility.com上的一个测试范例
- poj1575 一水