⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tean.c

📁 TEA加密算法(一个非常短小的加密算法)
💻 C
字号:
/**********************************************************   TEA - Tiny Encryption Algorithm   Feistel cipher by David Wheeler & Roger M. Needham   (extended version) **********************************************************/#define ROUNDS 32#define DELTA 0x9e3779b9 /* sqr(5)-1 * 2^31 */#include "ctypes.h"/**********************************************************   Input values: 	k[4]	128-bit key			v[2]    64-bit plaintext block   Output values:	v[2]    64-bit ciphertext block  **********************************************************/void tean(word32 *k, word32 *v, long N) {  word32 y=v[0], z=v[1];  word32 limit,sum=0;  if(N>0) { /* ENCRYPT */    limit=DELTA*N;    while(sum!=limit) {      y+=((z<<4)^(z>>5)) + (z^sum) + k[sum&3];      sum+=DELTA;      z+=((y<<4)^(y>>5)) + (y^sum) + k[(sum>>11)&3];    }  } else { /* DECRYPT */    sum=DELTA*(-N);    while(sum) {      z-=((y<<4)^(y>>5)) + (y^sum) + k[(sum>>11)&3];      sum-=DELTA;      y-=((z<<4)^(z>>5)) + (z^sum) + k[sum&3];    }  }  v[0]=y; v[1]=z;}void cl_enc_block(word32 *k, word32 *v) { tean(k,v,ROUNDS);}void cl_dec_block(word32 *k, word32 *v) { tean(k,v,-ROUNDS);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -