SHA-1密码哈希算法(c语言实现)
本人为在校大学生,所写代码有诸多不足,希望各位多多指正。编译器为Dev
C++
using namespace std;
//明文
char M[100000]="abcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyzabcdefghigklmnopqrszuvwxyz";
//五个寄存器
unsigned int A,B,C,D,E;
//明文分组及其拓展
unsigned int X[80];
//初始值
unsigned int IV[5]={0x67452301,0xefcdab89,0x98badcfb,0x10325476,0xc3d2e1f0};
//压缩函数所需常数K
unsigned int K[4]={0x5a827999,0x6ed93ba1,0x8f1bbcdc,0xca62c1d6};
//移位函数
int move(int i,unsigned int x)
{
unsigned int y;
y=x<<i;
x=y|x>>(32-i);
return x;
}
//四轮压缩函数
int F1(int i)
{
unsigned int m;
m=A;
A=K[0]+X[i]+move(5,A)+E+((B&C)|(~B&D));