资源简介
codeproject上的共享工程,源地址:https://www.codeproject.com/Articles/2463/CSHA-A-C-Class-Implementation-of-the-SHA-Hash-A,压缩包里包含SHA1.h和SHA1.cpp文件,不能设置免费所以设置了最低分,欢迎交流暗号271888395。

代码片段和文件信息
/*
100% free public domain implementation of the SHA-1 algorithm
by Dominik Reichl
Web: http://www.dominik-reichl.de/
See header file for version history and test vectors.
*/
// If compiling with MFC you might want to add #include “StdAfx.h“
#define _CRT_SECURE_NO_WARNINGS
#include “SHA1.h“
#define SHA1_MAX_FILE_BUFFER (32 * 20 * 820)
// Rotate p_val32 by p_nBits bits to the left
#ifndef ROL32
#ifdef _MSC_VER
#define ROL32(p_val32p_nBits) _rotl(p_val32p_nBits)
#else
#define ROL32(p_val32p_nBits) (((p_val32)<<(p_nBits))|((p_val32)>>(32-(p_nBits))))
#endif
#endif
#ifdef SHA1_LITTLE_ENDIAN
#define SHABLK0(i) (m_block->l[i] = \
(ROL32(m_block->l[i]24) & 0xFF00FF00) | (ROL32(m_block->l[i]8) & 0x00FF00FF))
#else
#define SHABLK0(i) (m_block->l[i])
#endif
#define SHABLK(i) (m_block->l[i&15] = ROL32(m_block->l[(i+13)&15] ^ \
m_block->l[(i+8)&15] ^ m_block->l[(i+2)&15] ^ m_block->l[i&15]1))
// SHA-1 rounds
#define S_R0(vwxyzi) {z+=((w&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v5);w=ROL32(w30);}
#define S_R1(vwxyzi) {z+=((w&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v5);w=ROL32(w30);}
#define S_R2(vwxyzi) {z+=(w^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v5);w=ROL32(w30);}
#define S_R3(vwxyzi) {z+=(((w|x)&y)|(w&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v5);w=ROL32(w30);}
#define S_R4(vwxyzi) {z+=(w^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v5);w=ROL32(w30);}
#pragma warning(push)
// Disable compiler warning ‘Conditional expression is constant‘
#pragma warning(disable: 4127)
CSHA1::CSHA1()
{
m_block = (SHA1_WORKSPACE_BLOCK*)m_workspace;
Reset();
}
#ifdef SHA1_WIPE_VARIABLES
CSHA1::~CSHA1()
{
Reset();
}
#endif
void CSHA1::Reset()
{
// SHA1 initialization constants
m_state[0] = 0x67452301;
m_state[1] = 0xEFCDAB89;
m_state[2] = 0x98BADCFE;
m_state[3] = 0x10325476;
m_state[4] = 0xC3D2E1F0;
m_count[0] = 0;
m_count[1] = 0;
}
void CSHA1::Transform(UINT_32* pState const UINT_8* pBuffer)
{
UINT_32 a = pState[0] b = pState[1] c = pState[2] d = pState[3] e = pState[4];
memcpy(m_block pBuffer 64);
// 4 rounds of 20 operations each loop unrolled
S_R0(abcde 0); S_R0(eabcd 1); S_R0(deabc 2); S_R0(cdeab 3);
S_R0(bcdea 4); S_R0(abcde 5); S_R0(eabcd 6); S_R0(deabc 7);
S_R0(cdeab 8); S_R0(bcdea 9); S_R0(abcde10); S_R0(eabcd11);
S_R0(deabc12); S_R0(cdeab13); S_R0(bcdea14); S_R0(abcde15);
S_R1(eabcd16); S_R1(deabc17); S_R1(cdeab18); S_R1(bcdea19);
S_R2(abcde20); S_R2(eabcd21); S_R2(deabc22); S_R2(cdeab23);
S_R2(bcdea24); S_R2(abcde25); S_R2(eabcd26); S_R2(deabc27);
S_R2(cdeab28); S_R2(bcdea29); S_R2(abcde30); S_R2(eabcd31);
S_R2(deabc32); S_R2(cdeab33); S_R2(bcdea34); S_R2(abcde35);
S_R2(eabcd36); S_R2(deabc37); S_R2(c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7259 2012-06-20 01:21 SHA1.cpp
文件 8436 2012-06-20 01:25 SHA1.h
文件 4042 2018-01-19 13:54 CSHA1ClassDesc
- 上一篇:通过串口控制步进电机
- 下一篇:基于Simbad平台的机器人避障模拟与实现
相关资源
- Hash1.04(md5校验工具) 绿色免费版
- 右键属性文件校验插件可同时生成十
- windows下生成MD5值的工具(WinMD5)
- 全自动多功能编码转换工具(URLASCI
- MD5碰撞验证算法
- 易语言MD5加密源码
- PB9.0调用MD5加密
- MD5暴力破解程序 用SSE2 CPU加速指令集
- SecureCRT 8.5.3 Build 1867(X64)原版 + ZW
- 暴力破解MD5解密工具
- MD5加密解密算法demo
- 转:excel中用的md5宏,可批量转字串为
- APK获取MD5工具
- linux c 使用openssl实现SHA1WithRSA实现,签
- win7 802.1X MD5验证补丁
- 易语言md5定向爆破源码
- MD5EditTools,MD5修改工具
- MD5源代码和教程
- MD5GPU.rar
- 批量修改视频MD5值绿色版
- 基于DES的数字签名系统
- springboot+shiro+md5
- MD5值修改器破解版
- SSM实现登录注册
- SFCipher加解密工具
- MD5算法加密文件网络安全课程设计
- md5加密算法源码
- 对文件进行加密并生成MD5值
- 密码学实验全部题目+完整代码:Has
- MD5离线破解工具
评论
共有 条评论