• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: C/C++
  • 标签:

资源简介

sha1哈希函数,c语言实现

资源截图

代码片段和文件信息

#define   F1(xyz)  ((x&y)|((~x)&z))
#define   F2(xyz)  (x^y^z)
#define   F3(xyz)  ((x&y)|(x&z)|(y&z))




int  SHA1(unsigned char  *ldatint ldatlenunsigned char  *lout)
{
int ijkt1t2;
int L;  unsigned int *data;
unsigned int *temptemp1;
unsigned int  W[80]K;
unsigned int  ABCDE;
unsigned int  abcde;

unsigned char ltmp[128];





L=((ldatlen>>6)+1)<<6;
if((ldatlen&0x3f)>=56) L+=64;


data=(unsigned int *)malloc((L>>2)*sizeof(int));
if(data==NULL)
{
for(i=0;i<20;i++) lout[i]=0;
return 0;
}




ltmp[0]=0x80;
j=L-8-ldatlen;
for(i=1;i K=ldatlen<<3;

t1=L-ldatlen;
for(i=t1-1;i>=j;i--) { ltmp[i]=K&0xff; K>>=8; }





t2=(ldatlen>>2)<<2;
for(k=0i=0;i {
for(K=0j=0;j<4;j++) K=(K<<8)^ldat[i+j];
data[k]=K;
}



for(K=0;i

t2=ldatlen&0x3;
for(i=t2;i<4;i++) K=(K<<8)^ltmp[i-t2];
data[k]=K; k++;
for(i=4-t2;i {
for(K=0j=0;j<4;j++) K=(K<<8)^ltmp[i+j];
data[k]=K;
}


L>>=6;


A=0x67452301;  B=0xefcdab89;
C=0x98badcfe;  D=0x10325476;  E=0xc3d2e1f0;

for(temp=datai=0;i

评论

共有 条评论

相关资源