四种加密算法之SHA1源代码-C++

SHA1.h文件:

//! SHA1 动态链接库实现   H文件
/*!
 @author 朱孟斌
 @e-mail  zmb.tsubasa@gmail.com
 @version 1.0
 @date 2011-03
 @{
*/
#ifndef SHA1_H
#define SHA1_H

#include "stdint.h"
//! #定义SHA 中的返回ENUM
/*!
   @see enum
*/
#ifndef _SHA_enum_
#define _SHA_enum_
enum
{
	shaSuccess = 0,
	/*! <空指示参量 */
	shaNull,            
	/*! < 输入数据太长提示 */
	shaInputTooLong,
	 /*! <called Input after Result --以输入结果命名之 */
	shaStateError      
};
#endif
//! SHA1HashSize定义的是SHA1哈希表的大小
#define SHA1HashSize 20
//!   #能够进行动态链接库编译的SHA1类
 /*!  
       @see class _declspec(dllexport) SHA_1
       将SHA1算法写成动态链接库的形式方便调用,生成消息使用
 */
class _declspec(dllexport) SHA_1
{
public:
	//! #定义数据结构控制上下文消息 SHA1Context
	/*!
	    以下这种结构将会控制上下文消息 for the SHA-1
	    hashing operation
		@see struct SHA1Context
	*/
	typedef struct SHA1Context
	{
		uint32_t Intermediate_Hash[SHA1HashSize/4]; /*! <Message Digest  */

		uint32_t Length_Low;            /*! <Message length in bits      */
		uint32_t Length_High;           /*! <Message length in bits      */

		/*! <Index into message block array   */
		int_least16_t Message_Block_Index;
		uint8_t Message_Block[64];      /*! <512-bit message blocks      */

		int Computed;               /*! <Is the digest computed?         */
		int Corrupted;             /*! <Is the message digest corrupted? */
	} SHA1Context;

public:
    //! #SHA_1 的构造函数
    /*!
	 @see SHA_1()
      其中应该对SHA_1类中的一些变量进行相应的初始化
    */
	SHA_1();
	//! #SHA_1的析构函数
    /*!
	@see ~SHA_1()
      释放内存
    */
	~SHA_1(void);

	/*----------------------------------函数原型----------------------------------*/
	//! #SHA1算法中的数据填充模块
    /*!
	  @see void SHA1PadMessage(SHA1Context *);
	  @param[SHA1Context*  定义填充信息指针
	  @return[void] 不返回任何值
    */
	void SHA1PadMessage(SHA1Context *);    /*  定义填充信息指针  */
    //! #SHA1的消息块描述函数
    /*!
	  @see void SHA1ProcessMessageBlock(SHA1Context *);
	  @param[SHA1Context*  定义填充信息指针
	  @param[in] 消息块长度为固定之512比特
	  @return[void] 不返回任何值
    */
	void SHA1ProcessMessageBlock(SHA1Context *);
	//! #SHA1的数据初始化操作函数
   
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值