- 浏览: 51012 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
文章分类
最新评论
-
HenryYu:
是字符编码搞错了
XXTEA 加密算法的 Java 实现 -
HenryYu:
是用了一下,抛错也,是这样使用的吗?
public stati ...
XXTEA 加密算法的 Java 实现
/**********************************************************\ | | | The implementation of PHPRPC Protocol 3.0 | | | | XXTEA.as | | | | Release 3.0.0 | | Copyright (c) 2005-2007 by Team-PHPRPC | | | | WebSite: http://www.phprpc.org/ | | http://www.phprpc.net/ | | http://www.phprpc.com/ | | http://sourceforge.net/projects/php-rpc/ | | | | Authors: Ma Bingyao <andot@ujn.edu.cn> | | | | This file may be distributed and/or modified under the | | terms of the GNU Lesser General Public License (LGPL) | | version 3.0 as published by the Free Software Foundation | | and appearing in the included file LICENSE. | | | \**********************************************************/ /* XXTEA encryption arithmetic library. * * Copyright (C) 2006-2007 Ma Bingyao <andot@ujn.edu.cn> * Version: 1.7 * LastModified: Nov 5, 2007 * This library is free. You can redistribute it and/or modify it. */ package org.phprpc.util { import flash.utils.ByteArray; import flash.utils.Endian; public class XXTEA { private static const delta:uint = uint(0x9E3779B9); private static function LongArrayToByteArray(data:Array, includeLength:Boolean):ByteArray { var length:uint = data.length; var n:uint = (length - 1) << 2; if (includeLength) { var m:uint = data[length - 1]; if ((m < n - 3) || (m > n)) { return null; } n = m; } var result:ByteArray = new ByteArray(); result.endian = Endian.LITTLE_ENDIAN; for (var i:uint = 0; i < length; i++) { result.writeUnsignedInt(data[i]); } if (includeLength) { result.length = n; return result; } else { return result; } } private static function ByteArrayToLongArray(data:ByteArray, includeLength:Boolean):Array { var length:uint = data.length; var n:uint = length >> 2; if (length % 4 > 0) { n++; data.length += (4 - (length % 4)); } data.endian = Endian.LITTLE_ENDIAN; data.position = 0; var result:Array = []; for (var i:uint = 0; i < n; i++) { result[i] = data.readUnsignedInt(); } if (includeLength) { result[n] = length; } data.length = length; return result; } public static function encrypt(data:ByteArray, key:ByteArray):ByteArray { if (data.length == 0) { return new ByteArray(); } var v:Array = ByteArrayToLongArray(data, true); var k:Array = ByteArrayToLongArray(key, false); if (k.length < 4) { k.length = 4; } var n:uint = v.length - 1; var z:uint = v[n]; var y:uint = v[0]; var mx:uint; var e:uint; var p:uint; var q:uint = uint(6 + 52 / (n + 1)); var sum:uint = 0; while (0 < q--) { sum = sum + delta; 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; } 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; } return LongArrayToByteArray(v, false); } public static function decrypt(data:ByteArray, key:ByteArray):ByteArray { if (data.length == 0) { return new ByteArray(); } var v:Array = ByteArrayToLongArray(data, false); var k:Array = ByteArrayToLongArray(key, false); if (k.length < 4) { k.length = 4; } var n:uint = v.length - 1; var z:uint = v[n - 1]; var y:uint = v[0]; var mx:uint; var e:uint; var p:uint; var q:uint = uint(6 + 52 / (n + 1)); var sum:uint = q * delta; 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; } 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; sum = sum - delta; } return LongArrayToByteArray(v, true); } } }
发表评论
-
FMS3帮助
2009-11-11 12:04 744FMS3帮助 -
PHP 序列化和反序列化 for ActionScript 3.0
2009-11-11 11:57 1568Serializable.as ActionScript ... -
Base64 for ActionScript 3.0
2009-11-11 11:56 1641/****************************** ... -
as3鼠标控制人物移动
2009-11-11 11:31 2264var speed:uint=5; var mx var ... -
as3和js交互
2009-11-11 11:05 1067<!DOCTYPE html PUBLIC " ... -
AS3 loading
2009-11-11 10:45 1200AS2的时候做LOADING有很多种方法,做起来也得心应手 ... -
Flash AS3 截图后生成图片到本地 (附带flex版)
2009-11-11 10:22 3867import mx.graphics.codec.JPEGEn ... -
学习Flash相关站点资源
2009-11-11 10:17 669FLASH - 嘎嘎的博客 http://www.5ga.c ...
相关推荐
采用openssl1.1.0c,支持xxtea/aes加密解密,选择算法后输入秘钥及签名即可完成加密解密,即可加/解密单个文件,也可以指定加解密一个目录下的所有文件.
aq-xxtea_decrypt-lua加密文件破解工具,热门游戏开发脚本
sqlite xxtea 加密 源代码 SQLite是一个很好用的嵌入式数据库。可惜美中不足的是SQLite的免费版本不具备加密功能。曾经在网上看到一个用WinCrypt实现加密功能的版本,但我不喜欢太依赖于Windows平台。这几日有时间...
“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA)都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。 TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 ...
xxtea-java, Java的XXTEA加密算法库 用于 Java 的 XXTEA 简介XXTEA是一种快速安全的加密算法。 这是一个用于Java的XXTEA库。它与原始的XXTEA加密算法不同。 它加密和解密字节 [] 而不是 32bit 整数 array,键也
用于加密的XXTEA的源码,,很好用的。。。可以用多种方式进行操作。
C++使用的XXtea加密算法,制造license,简单易用。能够完全使用,欢迎使用。。。。。。。。。。。。。。。。
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据。TEA特点是速度快、效率高,实现也非常简单。由于针对TEA的攻击不断出现,所以TEA也发展出...
sqlite xxtea 加密 调用 SQLite是一个很好用的嵌入式数据库。可惜美中不足的是SQLite的免费版本不具备加密功能。曾经在网上看到一个用WinCrypt实现加密功能的版本,但我不喜欢太依赖于Windows平台。这几日有时间,...
XXTea 加密类 c#
XXTEA加密算法各种语言实现整理,包括C# delphi java javascript php c actionscript ps
一个很小巧的加密算法,加解密速度非常快,也很安全!!
XXTEA加密使用代码加密使用配合教程。
Python的XXTEA加密算法库
zip的读取解压,xxtea对资源的加密
xxtea-php, PHP的XXTEA加密算法库 用于 PHP 的 XXTEA 简介XXTEA是一种快速安全的加密算法。 这是一个PHP的XXTEA库。它与原始的XXTEA加密算法不同。 它加密和解密字符串而不是 uint32 array,密钥也是字符串。安装
xxtea-c, 基于XXTEA的加密算法库 用于C 的 XXTEA 简介XXTEA是一种快速安全的加密算法。 这是XXTEA的库。它与原始的XXTEA加密算法不同。 它对原始二进制数据进行加密和解密,而不是 32bit 整数 array,键也是原始二...
XXTEADart介绍XXTEA是一种快速且安全的加密算法。 这是Dart的XXTEA库。 它不同于原始的XXTEA加密算法。 它加密和解密String / Uint8List而不是uint32数组,并且密钥也是String / Uint8List。用法 import 'package:...
xxtea的加解密方法源码,可以对字符串进行可逆的加密。C#的源代码
一个用python制作的xxtea对称加密解密的批处理图片资源工具,带源码。用于网页,页游资源图片资源加密处理