当前位置: 代码迷 >> 其他数据库 >> sqlite xxTEA算法,该怎么解决
  详细解决方案

sqlite xxTEA算法,该怎么解决

热度:4945   发布时间:2013-02-26 00:00:00.0
sqlite xxTEA算法
#include "md5c.c"

#define CRYPT_OFFSET 8
#define BYTE unsigned char
#define WX_PAGER_MJ_PGNO(x) ((PENDING_BYTE/(x))+1)
Btree *m_bt;

typedef struct _CryptBlock
{
    BYTE*     ReadKey;     // 读数据库和写入事务的密钥
    BYTE*     WriteKey;    // 写入数据库的密钥
    int       PageSize;    // 页的大小
    BYTE*     Data;
} CryptBlock, *LPCryptBlock;

int xxtea( int * v, int n , int * k ) {
    unsigned int z/*=v[n-1]*/, y=v[0], sum=0,  e,    DELTA=0x9e3779b9 ;
    int m, p, q ;
    if ( n>1) {
        /* Coding Part */
        z = v[n-1];
        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] += (z>>5^y<<2)+(y>>3^z<<4)^(sum^y)+(k[p&3^e]^z);
          }
          y = v[0] ;
          z = v[n-1] += (z>>5^y<<2)+(y>>3^z<<4)^(sum^y)+(k[p&3^e]^z);
        }
        return 0 ;

        /* Decoding Part */
    }else if ( n <-1 ) {
        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] -= (z>>5^y<<2)+(y>>3^z<<4)^(sum^y)+(k[p&3^e]^z);
          }
          z = v[n-1] ;
          y = v[0] -= (z>>5^y<<2)+(y>>3^z<<4)^(sum^y)+(k[p&3^e]^z);
          sum -= DELTA ; 
        }
  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Wed Nov 22 09:52:05 CST 2017
  • 最近登录:Wed Nov 22 09:52:05 CST 2017
  • 最近登录:Wed Nov 22 09:52:05 CST 2017
  • 最近登录:Wed Nov 22 09:52:05 CST 2017
  • 最近登录:Wed Nov 22 09:52:05 CST 2017