资源简介
用C语言实现SHA-1算法
用C语言实现SHA-1算法
用C语言实现SHA-1算法用C语言实现SHA-1算法
用C语言实现SHA-1算法

代码片段和文件信息
//编程实现RSA_1
#include
#include
void show(int r[]) //将二进制转化为十六进制并输出
{
int i;
int a[40];
for(i=0;i<40;i++)
{
a[i]=r[i*4+0]*8+r[i*4+1]*4+r[i*4+2]*2+r[i*4+3]*1;
switch(a[i])
{
case 0 :
printf(“0“);break;
case 1 :
printf(“1“);break;
case 2 :
printf(“2“);break;
case 3 :
printf(“3“);break;
case 4 :
printf(“4“);break;
case 5 :
printf(“5“);break;
case 6 :
printf(“6“);break;
case 7 :
printf(“7“);break;
case 8 :
printf(“8“);break;
case 9 :
printf(“9“);break;
case 10 :
printf(“a“);break;
case 11 :
printf(“b“);break;
case 12 :
printf(“c“);break;
case 13 :
printf(“d“);break;
case 14 :
printf(“e“);break;
case 15 :
printf(“f“);break;
default: break;
}
if(i%8==7)
printf(“\n“);
}
}
void rotl(int a[]int n) //实现二进制a循环左移n位
{
int i;
int b[32];
for(i=0;i b[i]=a[i];
for(i=0;i<32-n;i++)
a[i]=a[i+n];
for(i=32-n;i<32;i++)
a[i]=b[i-32+n];
}
int turn(int nint a[]int b) //将十进制转化为其它数制
{
int i=0temp;
do{
temp=n%b;
a[i++]=temp;
}while(n=n/b);
return i;
}
void trans(char a[]int c[]) //实现十六进制转化为二进制
{
int ijflag;
int b[16][4]={{0000}{0001}{0010}{0011}{0100}{0101}
{0110}{0111}{1000}{1001}{1010}{1011}{1100}
{1101}{1110}{1111}};
for(i=0;i<8;i++)
{
switch(a[i])
{
case ‘0‘:
flag=0;break;
case ‘1‘ :
flag=1;break;
case ‘2‘ :
flag=2;break;
case ‘3‘ :
flag=3;break;
case ‘4‘ :
flag=4;break;
case ‘5‘ :
flag=5;break;
case ‘6‘ :
flag=6;break;
case ‘7‘ :
flag=7;break;
case ‘8‘ :
flag=8;break;
case ‘9‘ :
flag=9;break;
case ‘a‘ :
flag=10;break;
case ‘b‘ :
flag=11;break;
case ‘c‘ :
flag=12;break;
case ‘d‘ :
flag=13;break;
case ‘e‘ :
flag=14;break;
case ‘f‘ :
flag=15;break;
default: break;
}
for(j=0;j<4;j++)
c[4*i+j]=b[flag][j];
}
}
void w(char p[]int w[][32]) //将输入的字符串化为二进制并分组
{
int ijflagnle=0k=0;
int b[512]s[64];
for(i=0;p[i];i++) //将字符串化为二进制
{
unsigned int j=0x80tmp=*(p+i);
for(;j;j>>=1)
if(j&tmp) b[k++]=1;
else b[k++]=0;
}
flag=k; //flag为输入字符串的位数
b[k++]=1; //填充一个1其余位补0
for(;k<512;k++) b[k]=0;
n=turn(flags2);
for(l=511;l>511-n;l--) //将长度添加到数据块
b[l]=s[e++];
l=0;
for(i=0;i<16;i++) //将512个字分为16(*32)组
for(j=0;j<32;j++)
{
w[i][j]=b[l++];
}
for(;i<80;i++)
{
for(j=0;j<32;j++)
w[i][j]=w[i-3][j]^w[i-8][j]^w[i-14][j]^w[i-16][j];
rotl(w[i]1);
}
}
void f1(int tint B[]int C[]int D[]int f[]) //实现四个函数
{
int i;
for(i=0;i<32;i++)
{
if(t>=0&&t<=19)
f[i]=(B[i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 467 2009-12-21 18:12 sha\200702054029谭金林\说明.txt
文件 163905 2009-11-22 23:37 sha\200702054029谭金林\fSHA_1.exe
文件 172098 2009-11-29 20:24 sha\200702054029谭金林\SHA_1.exe
文件 6261 2009-11-29 20:24 sha\200702054029谭金林\SHA_1.cpp
文件 238592 2009-12-21 19:07 sha\200702054029谭金林\sha_1.doc
文件 288768 2009-12-22 20:45 sha\200702054029谭金林\sha-1.doc
文件 467 2009-12-03 11:02 sha\SHA_1算法\说明.txt
文件 163905 2009-11-22 23:37 sha\SHA_1算法\fSHA_1.exe
文件 172098 2009-11-29 20:24 sha\SHA_1算法\SHA_1.exe
文件 236032 2009-12-21 17:34 sha\SHA_1算法\sha_1.doc
目录 0 2009-11-29 20:09 sha\200702054029谭金林
目录 0 2009-12-21 17:35 sha\SHA_1算法
目录 0 2009-11-22 12:38 sha
----------- --------- ---------- ----- ----
1442593 13
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论