基于SHA-256的HMAC文件校验器
2007-03-15 21:52:58 来源:WEB开发网核心提示: 程序中的Mac类与HAMC和HASH函数都无关,只是一个存放结果的介质,基于SHA-256的HMAC文件校验器(3),它甚至都没有成员函数,我也在考虑是不是可以不把它做成一个类,而是密码与网安方面的专业教材,它的中文版也译得不错,为了便于读者阅读HMac类中的各变量基本上采用图二中的各标识
程序中的Mac类与HAMC和HASH函数都无关,只是一个存放结果的介质,它甚至都没有成员函数,我也在考虑是不是可以不把它做成一个类。
为了便于读者阅读HMac类中的各变量基本上采用图二中的各标识符标识。
对于下面一段代码读者可能会有疑惑,明明是该得到第一个预计算的结果,m_dwA1—m_dwH1是什么呢?
for(i=0;i<Mb;i++)
S[i]=sKeyplus[i]^ipad[i];
m_sha256.Init(Mb);
m_sha256.GenW(S,Mb);
m_sha256.Steps();
m_dwA1=m_sha256.OA;
m_dwB1=m_sha256.OB;
m_dwC1=m_sha256.OC;
m_dwD1=m_sha256.OD;
m_dwE1=m_sha256.OE;
m_dwF1=m_sha256.OF;
m_dwG1=m_sha256.OG;
m_dwH1=m_sha256.OH;
其实m_dwA1—m_dwH1就是第一个预计算的输出。这里因为这个输出有256位,于是我把它拆成了8个32位。同理,第二个预计算的输出为m_dwA2—m_dwH2。此外,程序中关于文件拖放和文件保存打开的部分(包括串行化等)对于初学者来说都是一个不错的借鉴,当然高手就不需在意了。下面将给出一个例子使读者的认识感性化一点。
三、例子
我有一张非常重要的图片传给你,如下:
图三 例图 VeriFileimg3
在传这张图的同时附上它的校验文件“important.vri”。(该校验文件在源代码压缩包)
而你收到的图片如下:(它在传送中在8,46处被非法的第三方修改了一个象素)
图四 例图VeriFileimg4
你用该软件对其进行校验可以如下操作:
(第一次运行该软件后,程序会创建一个对vri文件的关联,以后打开vri文件就能以双击vri文件打开了。);
由源文件生成校验文件的操作也很简单,从菜单‘校验文件-生成校验文件’中选中你的源文件,然后在弹出的对话框中输入密钥就可以了。提醒一下,密钥最大有效长度为16字节,中英文不限。生成的校验文件都自动以vri为后缀名。
四、结束语
大概情况就是如此,大家有什么问题或指正可以与我联系,谢谢!
另外如果诸君对HASH函数感兴趣的话可以参考 William Stallings 的 Cryptography and Network Security Principles and Practices 一书第三版。该书不是编程方面的指南,而是密码与网安方面的专业教材。它的中文版也译得不错,是一本好书。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››Sharepoint 文档管理系列之归档处理
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
更多精彩
赞助商链接