Tea加密算法实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
unsigned long a=k[0], b=k[1], c=k[2], d=k[3];
for (i=0; i < 32; i++) {
sum += delta;
y += ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
z += ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
y2=(unsigned long *)&de[i+4];
encrypt(y1,y2,key);/*加密*/
}
printf("密文:");
for (i=0;i<32;i++)
printf("%2x",(unsigned char)de[i]);
printf("\n");
for (i=0;i<32;i+=8)
}
*v1=y;
*v2=z;
}
void decrypt(unsigned long *v1,unsigned long *v2, unsigned long *k) {
unsigned long y=*v1, z=*v2, sum=0xC6EF3720, i;
unsigned long delta=0x9e3779b9;
sum -= delta;
}
*v1=y;
*v2=z;
}
程序运行结果:
工程硕士96
罗振一
printf("请输入源串,长度小于或等于32个英文字符:");
scanf("%s",or);
j=strlen(or);
for (i=j;;
for (i=0;i<32;i++) de[i]=or[i];
for (i=0;i<32;i+=8)
{
y1=(unsigned long *)&de[i];
Tea加密算法实现
源程序:
#include<stdio.h>
#include<string.h>
void encrypt(unsigned long *v1, unsigned long *v2,unsigned long *k);/*加密函数定义*/
void decrypt(unsigned long *v1,unsigned long *v2, unsigned long *k);/*解密函数定义*/
printf("\n解密后的密钥:%s\n",de);
}
void encrypt(unsigned long *v1, unsigned long *v2,unsigned long *k) {
unsigned long y=*v1, z=*v2, sum=0, i;
unsigned long delta=0x9e3779b9;
unsigned long *key = (unsigned long *)"1234567890abcde\0";/*常量密钥*/
void main()
{
char or[32],de[32];
int i,j,k;
unsigned long *y1,*y2;
printf("常量密钥:%s\n",(char *)key);
unsigned long a=k[0], b=k[1], c=k[2], d=k[3];
for(i=0; i<32; i++) {
z -= ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
y -= ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
{
y1=(unsigned long *)&de[i];
y2=(unsigned long *)&de[i+4];
decrypt(y1,y2,key);/*解密*/
}
printf("解密后:");
for (i=0;i<32;i++)
printf("%2x",(unsigned char)de[i]);
相关文档
最新文档