欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sqlite xxtea算法,该怎么解决

更新时间: 2014-01-05 02:32:26 责任编辑: Author_N1

 

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 ; 
        }
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:32:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11164/
本文WWW.DOC100.NET DOC100.NET版权所有。