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

📄 tea.txt

📁 最近比较流行的TEA加密算法,大家可以去借鉴一下
💻 TXT
字号:
数据加密算法之 TEA 程序代码
发表:不详   阅读:136次  关键字:不详   字体:[大 中 小] 
    TEA(Tiny Encryption Algorithm) 是一种优秀的数据加密算法,虽然它比 DES(Data Encryption Standard) 要简单得多, 但有很强的抗差分分析能力,加密速度也比 DES 快得多,而且对 64 位数据加密的密钥长达 128 位,安全性相当好。 下面的程序来自卢开澄《计算机密码学》(清华大学出版社)。  

    补充:为了使这段程序更加实用,我将其整理为几个单元, 分别用于 Delphi 和 C++Builder 。包括对数据流 TMemoryStream 和字符串的加密/解密功能, 对字符串的加密/解密还通过 Base64 编码/解码,保持加密后的字符串仍为字符串。可以在本站作品中下载。Aug.17-01 

// v[2] : 64bit data, k[4] : 128bit key 

void encipher( unsigned long * const v, const unsigned long * const k ) 
{ 
    register unsigned long y = v[0], z = v[1], sum = 0, delta = 0x9E3779B9, 
        a = k[0], b = k[1], c = k[2], d = k[3], n = 32; 

    while ( n-- > 0 ) 
    { 
        sum += delta; 
        y += ( z << 4 ) + a ^ z + sum ^ ( z >> 5 ) + b; 
        z += ( y << 4 ) + c ^ y + sum ^ ( y >> 5 ) + d; 
    } 
    v[0] = y; 
    v[1] = z; 
} 

void decipher( unsigned long * const v, const unsigned long * const k ) 
{ 
    register unsigned long y = v[0], z = v[1], sum = 0xC6EF3720, delta = 0x9E3779B9, 
        a = k[0], b = k[1], c = k[2], d = k[3], n = 32; 

    // sum = delta << 5, in general sum = delta * n 
    while ( n-- > 0 ) 
    { 
        z -= ( y << 4 ) + c ^ y + sum ^ ( y >> 5 ) + d; 
        y -= ( z << 4 ) + a ^ z + sum ^ ( z >> 5 ) + b; 
        sum -= delta; 
    } 
    v[0] = y; 
    v[1] = z; 
} 

⌨️ 快捷键说明

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