xxtea 加密算法
来源:互联网 发布:尔雅自动答题软件 编辑:程序博客网 时间:2024/05/08 14:56
#define MX (z>>5^y<<2) + (y>>3^z<<4)^(sum^y) + (k[p&3^e]^z);long btea(long* v, long n, long* k) { unsigned long z=v[n-1], y=v[0], sum=0, e, DELTA=0x9e3779b9; long p, q ; if (n > 1) { /* Coding Part */ q = 6 + 52/n; while (q-- > 0) { sum += DELTA; e = (sum >> 2) & 3; for (p=0; p<n-1; p++) y = v[p+1], z = v[p] += MX; y = v[0]; z = v[n-1] += MX; } return 0 ; } else if (n < -1) { /* Decoding Part */ n = -n; q = 6 + 52/n; sum = q*DELTA ; while (sum != 0) { e = (sum >> 2) & 3; for (p=n-1; p>0; p--) z = v[p-1], y = v[p] -= MX; z = v[n-1]; y = v[0] -= MX; sum -= DELTA; } return 0; } return 1;}int main(int argc, char * argv[]) { long key[100] = {1, 2, 3, 4, 5,6,7,8,9,10}; //加密key long data[100] = {1, 2, 3, 4, 5,6,7,8,9,10} ; //待加密数据 {1, 2, 3, 4, 5,6,7,8,9,10} long n = sizeof(data)/sizeof(long)-1; printf( "原始数据:\n") ; for (int i = 0; i < 10; i++) printf("%d", (int)data[i]); btea(data, n, key); // n为10,表示加密 printf( "\n\n加密后数据:\n"); for (int i = 0; i < 10; i++) printf("%d", (int)data[i]); btea(data, -n, key); // n为-10,表示解密 printf( "\n\n解密后数据:\n"); for (int i = 0; i < 10; i++) printf("%d", (int)data[i]); return 0;}/* 原始数据: 12345678910 加密后数据: 64910272916161279251076504406-854940934-2878803461560881696-10597049801613814276622662341480333385 解密后数据: 12345678910 */
0 0
- xxtea 加密算法
- Java xxtea加密算法
- XXTEA加密算法C++版
- XXTEA加密算法OC代码
- Sqlite 3.7.14.1 xxtea 加密算法
- XXTEA 加密算法的 JavaScript 和 PHP 实现
- 跨平台的加密算法XXTEA的封装
- 跨平台的加密算法XXTEA的封装
- XXTEA 加密算法 C++ C#兼容版本
- TEA和XxTEA跨平台加密算法
- XXTEA 加密算法的 JavaScript 和 PHP 实现
- 加密算法rc4和xxtea的对比
- XXTEA
- XXTEA 加密算法的概述及 Javascript 及 .net (C#) 实现
- [转载]XXTEA加密算法的各种程序实现整理
- XXTEA加密算法为SQLite 3.3.17实现加密功能
- XXTEA加密算法为SQLite 3.5.3实现加密功能
- xxtea加密算法-忘记是从哪里看到的了
- natapp开启内网穿透之旅
- EJB是什么
- easyui中combobox仅允许使用当前数据值处理
- js 继承
- Activiy的布局加载流程
- xxtea 加密算法
- Gradle
- python问题记录
- php session 有效时间
- JS中encodeURI,escape,encodeURIComponent区别
- getchar()
- windows vnc 远程登录 ubuntu Linux 系统
- NKOI 3697 乒乓比赛
- java list去重