`
hereson2
  • 浏览: 458420 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TEA算法的VB实现代码的使用说明

阅读更多
自从公开了TEA算法的VB代码之后一直有人追问我如何调用这两个过程,如何取得加密/解密结果的问题,在此就针对这点做一个补充说明

关于我给出的TEA算法VB实现的模块代码仅仅实现了TEA算法中最基本的:
以128位密匙(长度4的长整型数组)加密(解密)64位数据(长度2的长整型数组)

用法与算法描述中的C代码基本一样,仅增加了一个可以选择加密轮次的参数,提供16轮和32轮两种选择

由于C代码中使用的是指针参数,我在这个模块里索性就模仿C语言描述,利用ByRef参数返回运算结果

TEAEncode(V() as Long,K() as Long,lType As Integer)过程中,数组V既是提供明文的参数,也是返回加密后密文的参数
TEADecode(V() as Long,K() as Long,lType As Integer)过程中,数组V既是提供密文的参数,也是返回解密后明文的参数

具体范例如下:

Dim V(0 to 1) As Long
Dim K(0 to 3) As Long

'以下是试验用64位明文

V(0)=&H12345678
V(1)=&H87654321

'以下是试验用128位密匙

K(0)=&H11111111
K(1)=&H22222222
K(2)=&H33333333
K(3)=&H44444444

'显示输出明文
Print "明文:" & V(0) & " -- " & V(1)

'以下演示加密过程
Call TEAEncode(V,K,2) 'TEA算法 32轮加密
Print "加密结果:" & V(0) & " -- " & V(1)

'以下演示解密过程
Call TEADecode(V,K,2) 'TEA算法 32轮加密
Print "解密结果:" & V(0) & " -- " & V(1)

------------------------------------------------------
另外副上TEA算法描述中给出的C代码:

void decode(long* v,long* k) {
unsigned long n=32, sum, y=v[0], z=v[1],
delta=0x9e3779b9 ;
sum=delta<<5 ;
/* start cycle */
while (n-->0) {
z-= (y<<4)+k[2] ^ y+sum ^ (y>>5)+k[3] ;
y-= (z<<4)+k[0] ^ z+sum ^ (z>>5)+k[1] ;
sum-=delta ;
}
/* end cycle */
v[0]=y ; v[1]=z ; }


void code(long* v, long* k) {
unsigned long y=v[0],z=v[1], sum=0,delta=0x9e3779b9, n=32;
unsigned long m; /* a key schedule constant */
while (n-->0) { /* basic cycle start */
sum += delta ;
printf("%lu;%lu;%lu\n",sum,sum-delta,delta);
y += (z<<4)+k[0] ^ z+sum ^ (z>>5)+k[1] ;
z += (y<<4)+k[2] ^ y+sum ^ (y>>5)+k[3] ; /* end cycle */
}
v[0]=y;v[1]=z ;}
分享到:
评论

相关推荐

    TEA 算法的加密解密模块 vb源码

    使用VB实现TEA算法时,需要注意的是VB的整数类型可能只有16位,因此可能需要使用Long类型来存储32位的数值。此外,为了防止溢出,你需要在计算过程中特别小心。 在程序注册保护中,TEA算法可以用来加密用户的注册...

    VB各种加密算法

    这些VB6加密类模块为开发者提供了实现各种加密算法的基础,可以根据实际需求选择合适的算法来保护数据。不过,值得注意的是,随着技术的发展,新的加密标准和更安全的算法不断出现,如AES,开发者应持续关注最新的...

    几个著名算法的加密解密VB源码

    `TEA.cls`文件可能包含了VB中的TEA算法实现,用于快速加密和解密小数据块。 9. **Twofish**: Twofish是Blowfish的后继者,设计更加强大且安全。`clsTwofish.cls`文件可能包含了VB实现的Twofish算法,支持更长的...

    VB加密算法代码集锦.rar

    这个加解密源码几乎包括了世界上几个最著名的加密算法:Blowfish、CryptAPI、DES、Gost、RC4、XOR、Skipjack、TEA、Twofish,曾获源码5星推荐 Business-strengthCompression.zip: 商用压缩+加密程序 ...

    vb Blowfish, DES Gost, Simple XOR, RC4,Skipjack,TEA,Twofish

    在VB(Visual Basic)编程环境中,这些加密算法可以被用于创建安全的应用程序,例如实现数据加密、解密功能。源码的提供使得开发者能够理解和学习这些算法的实现细节,从而提高他们的编程技能和安全意识。在下载并...

    VB Blowfish、CryptAPI、DES、Gost、RC4、XOR等加密算法集.rar

    VB 6.0 Blowfish、CryptAPI、DES、Gost、RC4、XOR等加密算法集,这个加解密源码几乎包括了世界上几个最著名的加密算法:Blowfish、CryptAPI、DES、Gost、RC4、XOR、Skipjack、TEA、Twofish,曾获源码5星推荐。...

    加密算法 模块 加密算法 模块

    标准算法模块是集DES、3DES、AES、RSA、MD5、BlowFish、TEA、RC6等标准算法为一体的算法包,同时在模块中使用了Anti-Debug和程序自校验功能(涉及到软件的加壳和CRC32)、软件使用次数限制,更好的保护您的软件。...

    加密算法模块

    标准算法模块是集DES、3DES、AES、RSA、MD5、BlowFish、TEA、RC6等标准算法为一体的算法包,同时在模块中使用了Anti-Debug和程序自校验功能(涉及到软件的加壳和CRC32)、软件使用次数限制,更好的保护您的软件。...

    Visual Basic 常用加密压缩算法

    这个加解密源码几乎包括了世界上几个最著名的加密算法:Blowfish、CryptAPI、DES、Gost、RC4、XOR、Skipjack、TEA、Twofish,曾获源码5星推荐 Business-strengthCompression.zip: 商用压缩+加密程序 ...

    VBCrypto源码库实例大全

    摘要:VB源码,算法相关,Crypto  VBCrypto源码库大全源码,这是一个良好的编译算法,由如下算法组成:10种流行的加密算法(Blowfish, Twofish, Rijndael, Skipjack, Serpent, Gost, RC2, RC4, TEA, DES, 3DES, 3DES...

    TeaAsm的软件源码

    通过这些文件,开发者可以深入理解TeaAsm的工作原理,学习如何在VB中操作汇编代码以及实现加密算法。对于学习编程和提高技能的开发者来说,这是一个宝贵的资源,尤其是对汇编语言和加密算法感兴趣的人员。同时,开源...

    多种加密方式

    本文将深入探讨VB(Visual Basic)编程环境中涉及的多种加密算法,包括DES、RC4、TEA等,并介绍它们的基本原理、应用以及在VB中的实现。 首先,DES(Data Encryption Standard)是一种古老的对称加密算法,由IBM...

    jiamisuanfamokuai.zip_RSA  C语言_VB加壳_blowfish dll_自校验_自校验 delphi

    标准算法模块是集DES、3DES、AES、RSA、MD5、BlowFish、TEA、RC6等标准算法为一体的算法包,同时在模块中使用了Anti-Debug和程序自校验功能(涉及到软件的加壳和CRC32)、软件使用次数限制,更好的保护您的软件。...

    加密算法模块 2004.8.12

    标准算法模块是集DES、3DES、AES、RSA、MD5、BlowFish、TEA、RC6等标准算法为一体的算法包,同时在模块中使用了Anti-Debug和程序自校验功能(涉及到软件的加壳和CRC32)、软件使用次数限制,更好的保护您的软件。...

    加密算法模块 2004年7月19日更新

    标准算法模块是集DES、3DES、AES、RSA、MD5、BlowFish、TEA、RC6等标准算法为一体的算法包,同时在模块中使用了Anti-Debug和程序自校验功能(涉及到软件的加壳和CRC32)、软件使用次数限制,更好的保护您的软件。...

    浙江省平阳县第二中学2015_2016学年高二信息技术上学期期中试题

    在VB编程中,首先需要分析问题,确定解决问题的算法,然后在编程环境中设计界面并编写代码,最后是调试和运行程序。正确的顺序是:分析问题 -&gt; 设计界面和编写代码 -&gt; 调试运行。 3. **算法输入与输出**:算法的...

Global site tag (gtag.js) - Google Analytics