- 浏览: 1087419 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
http://bbs.9ria.com/viewthread.php?tid=75135&extra=page%3D2%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000
XXTEA算法是什么?可以去百度一下,它是一个非常快速小巧的加解密算法。因为快速,所以一般用于协议加解密。
由于这个算法的规范是公开的,所以算法本身是不需要保密的。但是,在网上很少看到有基于AS3的实现。
由于做了一个动态内存加密的组件需要用到加密算法,就正好把它实现了。
另:该算法很多基于C的实现,都是对字节流进行加解密。由于Flash的应用更趋向于字符串操作,所以,我只实现了基于字符串的XXTEA。
我想这相对于对基于ByteArray的实现,对大家更有用。
XXTEA算法是什么?可以去百度一下,它是一个非常快速小巧的加解密算法。因为快速,所以一般用于协议加解密。
由于这个算法的规范是公开的,所以算法本身是不需要保密的。但是,在网上很少看到有基于AS3的实现。
由于做了一个动态内存加密的组件需要用到加密算法,就正好把它实现了。
另:该算法很多基于C的实现,都是对字节流进行加解密。由于Flash的应用更趋向于字符串操作,所以,我只实现了基于字符串的XXTEA。
我想这相对于对基于ByteArray的实现,对大家更有用。
/************************************************************************* 版权所有 (C), 1998-2009 *************************************************************************/ /************************************************************************* # File Name : XXTEA.as # Version : 1.0.0 # Author : slicoltang # Date : 2009-2 # Comment : 一个XXTEA算法的实现类。 * 实现基于字符数组的XXTEA。 * 后续将实现基于字节流的XXTEA。 * * 如有疑问,请与本人联系。 # Modify : 2009-2 文件创建 # *************************************************************************/ package com.tencent.fge.codec.tea { public class XXTEA { public function XXTEA() { } public static function encrypt_CharArray(str:Array, key:Array):Array { if (str == null || str.length == 0) { return null; } var v:Array = new Array(str.length); var i:int = 0; for(i = 0; i < str.length; ++i) { v[i] = str[i]; } v[v.length] = str.length; var k:Array = new Array(key.length); for(i = 0; i < key.length; ++i) { k[i] = key[i]; } if (k.length < 4) { k.length = 4; } var n:int = v.length - 1; var z:int = v[n], y:int = v[0], delta:int = 0x9E3779B9; var mx:int, e:int, p:int, q:int = Math.floor(6 + 52 / (n + 1)), sum:int = 0; while (0 < q--) { sum = sum + delta & 0xffffffff; e = sum >>> 2 & 3; for (p = 0; p < n; p++) { y = v[p + 1]; mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z); z = v[p] = v[p] + mx & 0xffffffff; } y = v[0]; mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z); z = v[n] = v[n] + mx & 0xffffffff; } //在这里进行分割 var datLen:int = v.length; var ret:Array = new Array(datLen * 4); var datVal:uint = 0; i = 0; while(i < datLen) { datVal = v[i]; ret[i * 4] = (datVal >> 24) & 0x000000ff; ret[i * 4 + 1] = (datVal >> 16) & 0x000000ff; ret[i * 4 + 2] = (datVal >> 8) & 0x000000ff; ret[i * 4 + 3] = datVal & 0x000000ff; ++i; } return ret; } public static function decrypt_CharArray(str:Array, key:Array):Array { if (str == null || str.length == 0 || str.length % 4 != 0) { return null; } //合并数据 var datLen:int = str.length / 4; var v:Array = new Array(datLen); var datVal:uint = 0; var i:int = 0; for(i = 0; i < datLen; ++i) { v[i] = (str[i * 4] << 24) | (str[i * 4 + 1] << 16) | (str[i * 4 + 2] << 8) | (str[i * 4 + 3]); } var k:Array = new Array(key.length); for(i = 0; i < key.length; ++i) { k[i] = key[i]; } if (k.length < 4) { k.length = 4; } var n:int = v.length - 1; var z:int = v[n - 1], y:int = v[0], delta:int = 0x9E3779B9; var mx:int, e:int, p:int, q:int = Math.floor(6 + 52 / (n + 1)), sum:int = q * delta & 0xffffffff; while (sum != 0) { e = sum >>> 2 & 3; for (p = n; p > 0; p--) { z = v[p - 1]; mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z); y = v[p] = v[p] - mx & 0xffffffff; } z = v[n]; mx = (z >>> 5 ^ y << 2) + (y >>> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z); y = v[0] = v[0] - mx & 0xffffffff; sum = sum - delta & 0xffffffff; } return v.slice(0, v.length - 1); } } }
发表评论
-
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2456实现这效果其实比较简单,主要是思路~! package ... -
[转]三次贝尔曲线
2011-11-10 01:09 1930http://bbs.9ria.com/viewt ... -
轻量级Eval库Grak轻量级Eval库Grak
2011-09-22 03:07 0轻量级Eval库Grak -
[转]AS3与数据结构
2011-09-14 01:08 0http://www.nshen.net/dataSt ... -
井字棋算法
2011-08-18 15:04 0井字棋算法井字棋算法 -
[转 自己改的一个滚动条类,理论上什么都能“滚”
2011-08-11 23:14 0http://bbs.9ria.com/viewthread. ... -
[转] 关于一段时间内鼠标没有移动,执行某函数
2011-08-10 00:22 0http://bbs.9ria.com/viewthread. ... -
很好的FLEX表情聊天界面
2011-08-09 02:06 0很好的FLEX表情聊天界面 -
Flash版《植物大战僵尸》源码
2011-08-09 01:34 0本帖最后由 IJUST 于 2 ... -
愤怒的小鸟 BOX2D FLASH
2011-08-09 01:27 0姊妹篇:Flash版《植物大战僵尸》源码今年就要大四啦,放暑假 ... -
[转]如何计算线段和圆的交点
2011-08-09 00:53 0http://www.thecodeway.com/b ... -
[转] 45度地图坐标转换
2011-07-30 02:41 0昨天有朋友问我 45度地图中关于鼠标点击如果进行坐标转化 ... -
[转]一个Collision类,其中的block方法可以实现两个物体之间的碰撞检测。
2011-07-30 02:35 1399第二个是书中的源代码给出了一个Collision类,其中 ... -
AS3的一些优化计算方法
2011-07-06 12:56 0http://www.cnitblog.com/flashli ... -
[转]AS3类:CRC32校验类
2011-07-06 12:54 2610http://www.cnitblog.com/flashli ... -
基于哈希表数据源的A星寻路算法 - [as 3.0]
2011-06-16 17:03 0在这贴的代码是为了有需要的人学习而不是 提供源码给别人用的 ... -
计算几何算法概览
2011-06-14 17:28 2123计算几何算法概览 一、引言 ... -
[演示] 判断点是否处于三角形内的算法分析
2011-06-14 17:26 3310http://bbs.wow8.org/thread-9429 ... -
判断点在直线的哪一侧
2011-06-14 17:04 0判断点在直线的哪一侧 2.2.1下面开始程序的设计: ... -
[转]动画中坐标旋转公式的原理
2011-05-25 23:30 1498有一定的其它语言编程基础,所以学习新语言还是比较快的。正在进军 ...
相关推荐
XXTEA算法的C语言实现,内含测试代码,编译后可直接运行
“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA)都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。 TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 ...
3. 使用XXTEA算法进行加密和解密: ```java // 假设我们有需要加密的数据data byte[] data = ...; // 使用协商出的密钥进行XXTEA加密 int[] keys = new int[4]; System.arraycopy(sharedKey1, 0, keys, 0, 4); ...
XXTEA AS3和C实现的对比展示了两种不同编程语言在实现同一加密算法时的差异。AS3的面向对象特性使得加密操作更易封装,而C语言的低级特性使其更适合系统级编程。两者都提供了解决小块数据安全传输的有效工具,开发者...
XXTEA(Extreme eXtended Encryption Technique Algorithm)是一种简单的块加密算法,由David Wheeler和Roger Needham在1994年提出。该算法设计简洁,执行效率高,尤其适用于资源有限的环境,如Web解决方案。XXTEA的...
3. **Photoshop脚本(xxtea.ps)**:XXTEA的Photoshop脚本版本可能用于在图像文件处理过程中加密元数据,保护创作者的信息或者确保数据安全。 4. **Delphi实现(xxtea_delphi.txt)**:Delphi是基于Pascal的面向...
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据。TEA特点是速度快、效率高,实现也非常简单。由于针对TEA的攻击不断出现,所以TEA也发展出...
xxtea-java, Java的XXTEA加密算法库 用于 Java 的 XXTEA 简介XXTEA是一种快速安全的加密算法。 这是一个用于Java的XXTEA库。它与原始的XXTEA加密算法不同。 它加密和解密字节 [] 而不是 32bit 整数 array,键也
XXtea加密算法是一种轻量级的加密算法,主要用于保护数据的隐私性和安全性。该算法由David Wheeler和Roger Needham在1998年提出,原名为“Simple Encryption Algorithm”(SEA),后更名为XXtea,是“eXtended Xor ...
XXTEA(Extreme eXtended TEA),是一种在1998年由David Wheeler和Roger Needham提出的高效、安全的块密码算法。它是TEA(Tiny Encryption Algorithm)的增强版本,修复了TEA算法的一些安全漏洞,并提供了更好的性能...
XXTEA(Extreme eXtended TEA,极度扩展的TEA)是一种对称加密算法,由David Wheeler和Roger Needham在1994年提出,是对Tiny Encryption Algorithm(TEA)的改进版本。TEA虽然简洁,但在某些情况下可能不够安全,而...
XXTEA算法是一种高效、简洁的微积分加密算法,由David Wheeler和Roger Needham于1994年提出,主要用于短数据块的加密。在给定的“xxtea.rar_XXTEA”压缩包中,我们可以看到一个名为“hello”的文件,这可能是用XXTEA...
3. **加密过程**:XXTEA的加密过程通过执行多次循环(通常为64次)进行,每个循环包含四步操作:(i) 加法操作,(ii) XOR操作,(iii) 滚动操作,以及(iv) 乘法操作。这些操作使得加密过程具有非线性,从而增加破解...
为解决这些问题,文章介绍了一种专门应用于RFID读写器的加密算法——XXTEA(Corrected Block Tiny Encryption Algorithm),并对该算法进行了深入分析。 XXTEA算法是基于原有的分组TEA(Tiny Encryption Algorithm...
XXTEA(Extreme eXtended TEA,极度扩展的TEA)是一种快速且安全的块密码算法,由David Wheeler和Roger Needham在1997年提出。它是在Tiny Encryption Algorithm (TEA)的基础上改进的,提高了安全性,并解决了原始TEA...
XXTea加密算法是一种在Objective-C开发中常用的轻量级数据加密技术,它以其高效、简单的特点被广泛应用于移动应用和软件开发。本资源提供的是一个Objective-C版本的XXTea封装器,方便开发者在iOS和Mac OS X平台中...
3. 使用预定义的XXTEA常数和密钥进行非线性变换。 4. 应用特定的轮数(通常为64轮)来确保足够的安全性。 5. 结合所有加密或解密后的数据块,形成完整的加密或解密结果。 在C#中,你可以使用`unsafe`关键字来处理...
高于TEA的加密算法,值得使用!破解时间比TEA时间要长。
这几日有时间,自己就用XXTEA算法在 SQLite3.3.7版本的基础上实现了加密功能。选择XXTEA主要是因为这个算法速度很快,对性能造成的影响相对较小。顺便修改了网上流传的XXTEA代码的一处内存越界的BUG。 用SQLite的...
XXTEA(Extreme eXtended TEA,极度扩展的TEA)是一种对称加密算法,由David Wheeler和Roger Needham在1994年提出,是对Tiny Encryption Algorithm(TEA)的改进版本。它提供了更好的安全性和效率,被广泛用于软件和...