资源简介
要不给你看看我写的sha1的源码,这是我写的sha1源码

代码片段和文件信息
/*$6
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#include
#include “sha1.h“
#define SHA1HANDSOFF
#define rol(value bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
/* blk0() and blk() perform the initial expand. */
/* I got the idea of expanding during the round function from SSLeay */
#if BYTE_ORDER == LITTLE_ENDIAN
#define blk0(i) (block->l[i] = (rol(block->l[i]24)&0xFF00FF00) \
|(rol(block->l[i]8)&0x00FF00FF))
#else
#define blk0(i) block->l[i]
#endif
#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
^block->l[(i+2)&15]^block->l[i&15]1))
/* (R0+R1) R2 R3 R4 are the different operations used in SHA1 */
#define R0(vwxyzi) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v5);w=rol(w30);
#define R1(vwxyzi) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v5);w=rol(w30);
#define R2(vwxyzi) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v5);w=rol(w30);
#define R3(vwxyzi) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v5);w=rol(w30);
#define R4(vwxyzi) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v5);w=rol(w30);
/* Hash a single 512-bit block. This is the core of the algorithm. */
void SHA1Transform(unsigned long state[5] unsigned char buffer[64])
{
unsigned long a b c d e;
typedef union {
unsigned char c[64];
unsigned long l[16];
} CHAR64LONG16;
CHAR64LONG16* block;
#ifdef SHA1HANDSOFF
static unsigned char workspace[64];
block = (CHAR64LONG16*)workspace;
memcpy(block buffer 64);
#else
block = (CHAR64LONG16*)buffer;
#endif
/* Copy context->state[] to working vars */
a = state[0];
b = state[1];
c = state[2];
d = state[3];
e = state[4];
/* 4 rounds of 20 operations each. Loop unrolled. */
R0(abcde 0); R0(eabcd 1); R0(deabc 2); R0(cdeab 3);
R0(bcdea 4); R0(abcde 5); R0(eabcd 6); R0(deabc 7);
R0(cdeab 8); R0(bcdea 9); R0(abcde10); R0(eabcd11);
R0(deabc12); R0(cdeab13); R0(bcdea14); R0(abcde15);
R1(eabcd16); R1(deabc17); R1(cdeab18); R1(bcdea19);
R2(abcde20); R2(eabcd21); R2(deabc22); R2(cdeab23);
R2(bcdea24); R2(abcde25); R2(eabcd26); R2(deabc27);
R2(cdeab28); R2(bcdea29); R2(abcde30); R2(eabcd31);
R2(deabc32); R2(cdeab33); R2(bcdea34); R2(abcde35);
R2(eabcd36); R2(deabc37); R2(cdeab38); R2(bcdea39);
R3(abcde40); R3(eabcd41); R3(deabc42); R3(cdeab43);
R3(bcdea44); R3(abcde45); R3(eabcd46); R3(deabc47);
R3(cdeab48); R3(bcdea49); R3(abcde50); R3(eabcd51);
R3(deabc52); R3(c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6045 2014-10-24 20:23 sha1\sha1.c
文件 1016 2014-10-24 20:23 sha1\sha1.h
目录 0 2014-10-26 16:26 sha1
----------- --------- ---------- ----- ----
7061 3
- 上一篇:lmd程序
- 下一篇:HMC5883_CC2530
相关资源
- Scratch源码
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 右键属性文件校验插件可同时生成十
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
- 栅栏填充算法源码(VC)
- msp430F149操作红外接收模块源码
- [免费]图像识别c 源码
- 周易排盘源码
- RSA算法源码
- 一个人脸识别程序源码
评论
共有 条评论