zoukankan      html  css  js  c++  java
  • TEA(Tiny Encryption Algorithm)

    简介

    TEA是一种简单高效的加解密算法,以速度快,实现简单著称。TEA算法每一次可以操作64-bit数据,采用128-bit作为key,算法采用迭代的形式,推荐的迭代轮数是64,最少32。

    代码(默认32轮)

    void encrypt(unsigned long *v, unsigned long *k) {
        unsigned long y=v[0], z=v[1], sum=0, i;           //set up

        unsigned long delta=0x9e3779b9;                   // a key schedule constant
        unsigned long a=k[0], b=k[1], c=k[2], d=k[3];  // cache key

        for (i=0; i < 32; i++) {                                 // basic cycle start
            sum += delta;
            y += ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
             z += ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);  // end cycle
        }

        v[0]=y;
        v[1]=z;
    }

    void decrypt(unsigned long *v, unsigned long *k) {
        unsigned long y=v[0], z=v[1], sum=0xC6EF3720, i;  // set up

        unsigned long delta=0x9e3779b9;    // a key schedule constant

        unsigned long a=k[0], b=k[1], c=k[2], d=k[3];    // cache key


        for(i=0; i<32; i++) {                            // basic cycle start
            z -= ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
            y -= ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
            sum -= delta;                                // end cycle
        }


        v[0]=y;
        v[1]=z;
    }

  • 相关阅读:
    angular 三大核心函数
    mongodb 怎样检测 安装成功 以及mongodb的一些增删改查命令
    前端自动化工具 -- gulp https://angularjs.org/
    ECMAscript一些方法的使用
    HBuilder使用技巧
    angular 本地存储
    WPF控件开发(2) 自动完成(AutoComplete)-1
    orecle查询关键字段存在的存储过程或Job
    flash 反编译 + 重新发布
    javascript高级程序设计--简介
  • 原文地址:https://www.cnblogs.com/wanhuan/p/5937686.html
Copyright © 2011-2022 走看看