资源简介
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
- 上一篇:集装箱的装箱问题c语言算法
- 下一篇:类似QQ登陆界面c++builder
评论
共有 条评论