TEA加密算法
来源:互联网 发布:苏有朋斥周杰炒作知乎 编辑:程序博客网 时间:2024/05/28 22:13
TEA加密算法:
#include <stdio.h>#include <stdlib.h>#include <string.h>#define mun_rounds 32void encipher(unsigned int v[2],unsigned int key[4]){ unsigned int i; unsigned int v0 = v[0],v1 = v[1],sum = 0,delta = 0x9E3779B9; for(i=0;i<mun_rounds;i++) { v0+=(((v1<<4)^(v1>>5))+v1)^(sum+key[sum&3]); sum+=delta; v1+=(((v0<<4)^(v0>>5))+v0)^(sum+key[(sum>>11)&3]); } v[0] = v0; v[1] = v1;}void decipher(unsigned int v[2],unsigned int key[4]){ unsigned int i; unsigned int v0 = v[0],v1 = v[1],delta = 0x9E3779B9,sum =mun_rounds*delta ; for(i=0;i<mun_rounds;i++) { v1-=(((v0<<4)^(v0>>5))+v0)^(sum+key[(sum>>11)&3]); sum-=delta; v0-=(((v1<<4)^(v1>>5))+v1)^(sum+key[sum&3]); } v[0] = v0; v[1] = v1;}int main(int argc,char* argv[]){ if(argc!= 5) { printf("\nUsage : kezhixingwenjian e password sourfile outfile\n"); printf("\nUsage : kezhixingwenjian r password sourfile outfile\n"); return 0; } char password[100] = {0}; strcpy(password,argv[2]); FILE *fpin = fopen(argv[3],"rb"); FILE *fpout = fopen(argv[4],"wb"); if(fpin != NULL && fpout != NULL) { while(!feof(fpin)) { unsigned int msg[2]; msg[0] = msg[1] = 0; if(fread(msg,1,8,fpin)==0)break; if(argv[1][0]=='e') { encipher(msg,(unsigned int*)password); } else { decipher(msg,(unsigned int*)password); } fwrite(msg,1,8,fpout); } } fclose(fpin); fclose(fpout); return 0;}
0 0
- TEA 加密算法
- tea加密算法
- TEA加密算法
- TEA加密算法java版
- QQ加密算法浅谈(TEA加解密算法)
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- (转)TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- 16轮运算TEA加密算法C#源代码
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA加密算法的C/C++实现
- TEA和XxTEA跨平台加密算法
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- JSONP的原理
- JSP传递数组给JS的方法
- android 四大组件之ContentProvider
- 校招结束offer多了也是一种忧愁,要怎么选择?
- TEA加密算法
- JavaScript进阶
- 在源码中编译spidev_test.c
- Java RMI之HelloWorld篇
- 我的 github 地址
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
- php eval函数的使用和关于安全的问题
- HDU-3709-数位dp
- Java RMI 框架(远程方法调用)