WEB开发网
开发学院软件开发VC 基于SHA-256的HMAC文件校验器 阅读

基于SHA-256的HMAC文件校验器

 2007-03-15 21:52:58 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 HMAC即带密钥的HASH函数,用它产生的报文鉴别码(MAC)可以实现报文鉴别,基于SHA-256的HMAC文件校验器,这里我将其做成一个软件,用于对文件的合法性进行校验,它比起MD5和SHA-1来要安全,(其实因为不是正式的安全产品,以下我先简单介绍软件相关背景知识再介绍其代码实现,

本文示例源代码或素材下载

HMAC即带密钥的HASH函数,用它产生的报文鉴别码(MAC)可以实现报文鉴别。这里我将其做成一个软件,用于对文件的合法性进行校验。以下我先简单介绍软件相关背景知识再介绍其代码实现。

一、背景知识简介

有时候进行通信的双方基于安全的考虑需要对对方发过来的消息进行校验,以确定消息是未经第三方修改过的。这种校验可以这样进行:

  • 双方共同约定一个密钥(即一个密码),这个密钥是对第三方保密的;
  • 消息的发方使用该密钥对将发送的消息产生一个校验码,并把该校验码附在消息后一起发出;
  • 消息的接收方在接收到附有校验码的消息后,将消息和校验码分开,用密钥对该消息生成一个校验码;
  • 然后将两个校验码相比较,如果相同的话则说明消息是未经第三方修改的,如果不同的话说明消息很可能被非法修改过(当然也有可能是别的原因使消息改变了)则该消息不可信,需要对方重发 ;
  • *其中,生成校验码的算法一般采用HMAC,它保证了第三方在不知密钥的情况下,不可能在修改消息后可以同时修改校验码使之与修改后的消息匹配。

    *在整个过程中消息是公开的(未经加密的),算法只提供消息的完整性校验而不提供保密性,保密性可由公钥加密算法现实,这里不作讨论。

    二、软件的实现

    我做的该软件是可以对电脑磁盘上的任意一文件生成一校验文件.vri(密钥由用户自己输入),根据该校验文件可以在需要之时对相应的文件进行校验。具体做法将在后面的例子中给出。

    程序中的HMAC算法的HASH函数我采用的是SHA-256算法,它比起MD5和SHA-1来要安全。(其实因为不是正式的安全产品,所以在本程序中采用MD5或SHA-1也未尝不可)。

    *HMAC的结构如下图所示:

    1 2 3  下一页

    Tags:基于 SHA HMAC

    编辑录入:爽爽 [复制链接] [打 印]
    赞助商链接