- 浏览: 139879 次
- 性别:
- 来自: 重庆
最新评论
-
老梦a:
要是保存到数据库,是怎么做呢,数据流这块,不太懂。。(*^__ ...
使用flash摄像头拍照的简单实践 -
wolf521hf:
学习 最近正在看相关的文档 标记下
Spring安全权限管理(Spring Security) -
yue_hun1025:
怎么下载不了??????
java反编译工具jad下载 -
ry.china:
你把这个放到jdk的bin目录下就可以了
java反编译工具jad下载 -
幻樱释:
不知道能不能看懂哦。
javascript高级程序设计实例代码
JavaScript实现
/* xxtea.js
*
* Author: Ma Bingyao <andot@ujn.edu.cn>
* Copyright: CoolCode.CN
* Version: 1.2
* LastModified: 2006-05-02
* This library is free. You can redistribute it and/or modify it.
* http://www.coolcode.cn/?p=128
*/
function long2str(v, w) {
var vl = v.length;
var sl = v[vl - 1] & 0xffffffff;
for (var i = 0; i < vl; i++)
{
v[i] = String.fromCharCode(v[i] & 0xff,
v[i] >>> 8 & 0xff,
v[i] >>> 16 & 0xff,
v[i] >>> 24 & 0xff);
}
if (w) {
return v.join('').substring(0, sl);
}
else {
return v.join('');
}
}
function str2long(s, w) {
var len = s.length;
var v = [];
for (var i = 0; i < len; i += 4)
{
v[i >> 2] = s.charCodeAt(i)
| s.charCodeAt(i + 1) << 8
| s.charCodeAt(i + 2) << 16
| s.charCodeAt(i + 3) << 24;
}
if (w) {
v[v.length] = len;
}
return v;
}
function xxtea_encrypt(str, key) {
if (str == "") {
return "";
}
var v = str2long(str, true);
var k = str2long(key, false);
var n = v.length - 1;
var z = v[n], y = v[0], delta = 0x9E3779B9;
var mx, e, q = Math.floor(6 + 52 / (n + 1)), sum = 0;
while (q-- > 0) {
sum = sum + delta & 0xffffffff;
e = sum >>> 2 & 3;
for (var 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;
}
return long2str(v, false);
}
function xxtea_decrypt(str, key) {
if (str == "") {
return "";
}
var v = str2long(str, false);
var k = str2long(key, false);
var n = v.length - 1;
var z = v[n - 1], y = v[0], delta = 0x9E3779B9;
var mx, e, q = Math.floor(6 + 52 / (n + 1)), sum = q * delta & 0xffffffff;
while (sum != 0) {
e = sum >>> 2 & 3;
for (var 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 long2str(v, true);
}
Java实现
/* xxtea.java
*
* Author: Ma Bingyao < andot@ujn.edu.cn >
* Copyright: CoolCode.CN
* Version: 1.0
* LastModified: 2006-05-11
* This library is free. You can redistribute it and/or modify it.
* http://www.coolcode.cn/?p=169
*/
public class xxtea {
/**
* Encrypt data with key.
*
* @param data
* @param key
* @return
*/
public static byte [] encrypt ( byte [] data , byte [] key ) {
if ( data . length == 0 ) {
return data ;
}
return toByteArray ( encrypt ( toIntArray ( data , true ) , toIntArray ( key , false )) , false ) ;
}
/**
* Decrypt data with key.
*
* @param data
* @param key
* @return
*/
public static byte [] decrypt ( byte [] data , byte [] key ) {
if ( data . length == 0 ) {
return data ;
}
return toByteArray ( decrypt ( toIntArray ( data , false ) , toIntArray ( key , false )) , true ) ;
}
/**
* Encrypt data with key.
*
* @param v
* @param k
* @return
*/
public static int [] encrypt ( int [] v , int [] k ) {
int n = v . length - 1 ;
if ( n < 1 ) {
return v ;
}
if ( k . length < 4 ) {
int [] key = new int [ 4 ] ;
System . arraycopy ( k , 0 , key , 0 , k . length ) ;
k = key ;
}
int z = v [ n ] , y = v [ 0 ] , delta = 0x9E3779B9 , sum = 0 , e ;
int p , q = 6 + 52 / ( n + 1 ) ;
while ( q -- > 0 ) {
sum = sum + delta ;
e = sum >>> 2 & 3 ;
for ( p = 0 ; p < n ; 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 ] += ( z >>> 5 ^ y << 2 ) + ( y >>> 3
^ z << 4 ) ^ ( sum ^ y ) + ( k [ p & 3 ^ e ] ^ z ) ;
}
return v ;
}
/**
* Decrypt data with key.
*
* @param v
* @param k
* @return
*/
public static int [] decrypt ( int [] v , int [] k ) {
int n = v . length - 1 ;
if ( n < 1 ) {
return v ;
}
if ( k . length < 4 ) {
int [] key = new int [ 4 ] ;
System . arraycopy ( k , 0 , key , 0 , k . length ) ;
k = key ;
}
int z = v [ n ] , y = v [ 0 ] , delta = 0x9E3779B9 , sum , e ;
int p , q = 6 + 52 / ( n + 1 ) ;
sum = q * delta ;
while ( sum != 0 ) {
e = sum >>> 2 & 3 ;
for ( p = n ; 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 ] ;
y = v [ 0 ] -= ( z >>> 5 ^ y << 2 ) + ( y >>> 3
^ z << 4 ) ^ ( sum ^ y ) + ( k [ p & 3 ^ e ] ^ z ) ;
sum = sum - delta ;
}
return v ;
}
/**
* Convert byte array to int array.
*
* @param data
* @param includeLength
* @return
*/
private static int [] toIntArray ( byte [] data , boolean includeLength ) {
int n = ((( data . length & 3 ) == 0 ) ? ( data . length >>> 2 )
: (( data . length >>> 2 ) + 1 )) ;
int [] result ;
if ( includeLength ) {
result = new int [ n + 1 ] ;
result [ n ] = data . length ;
} else {
result = new int [ n ] ;
}
n = data . length ;
for ( int i = 0 ; i < n ; i ++ ) {
result [ i >>> 2 ] |= ( 0x000000ff & data [ i ]) << (( i & 3 ) << 3 ) ;
}
return result ;
}
/**
* Convert int array to byte array.
*
* @param data
* @param includeLength
* @return
*/
private static byte [] toByteArray ( int [] data , boolean includeLength ) {
int n ;
if ( includeLength ) {
n = data [ data . length - 1 ] ;
} else {
n = data . length << 2 ;
}
byte [] result = new byte [ n ] ;
for ( int i = 0 ; i < n ; i ++ ) {
result [ i ] = ( byte ) ( data [ i >>> 2 ] >>> (( i & 3 ) << 3 )) ;
}
return result ;
}
}
发表评论
-
数据库JDBC驱动下载大全
2017-03-26 14:14 22641.数据库驱动下载地址 Cache : http://w ... -
MINA粘包断包专题研究
2015-05-13 00:25 0一、前述: 近期做项目用到了MINA,其中遇到了一个 ... -
Mybatis版PropertyFilter实现
2014-07-03 23:50 1516<!--前段时间看到hibernate的Proper ... -
java字符串应用之表达式解析器
2013-12-26 13:33 5266一、表达式的组成 1、数字 2、运算符:+ - ... -
全文检索Lucene使用与优化
2012-03-22 13:09 991转自http://www.oecp.cn/hi/chengzh ... -
Spring 里JMS和DB的事务集成
2012-02-10 18:59 1717http://www.javaworld.com/jav ... -
Java实现在bmp图像文件中隐藏与导出信息
2011-08-21 00:20 1398BMP图像文件,即所谓的位图文件。在位图中,其表示方式是 ... -
Spring事务配置的五种方式
2011-06-10 20:07 1002前段时间对Spring的事务配置做了比较深入的研究,在此之间对 ... -
spring2.5 mvc common-validator 集成应用
2010-12-10 12:59 2907常常写客服端验证代码,写多了就感觉是否有啥东西可以简化处理的, ... -
通过java2dAPI绘制报表
2010-12-05 21:41 1460/* *只画直线,矩形,椭圆,只能向右下角 ... -
调整 JVM 开关以提高性能
2010-12-04 16:29 1060http://blog.csdn.net/petehero/a ... -
CGlib简单介绍
2010-07-06 21:58 936转载:http://hacker0825.blog.163.c ... -
java开源论坛系统
2010-01-04 22:52 4163java开源论坛系统 ================ m ... -
纯jsp日历
2009-12-16 09:44 1172网上找了一大堆日历,感觉跟自己的想要的有点差别,索性自己修改了 ... -
tomcat6学习笔记( 包括和apache2的集成,集群,SSI,SSL,安全域,嵌入应用程序,访问控制平台和管理平台)
2009-12-15 11:27 2458一.访问tomcat的控制平台和管理平台 首先下载tom ... -
用p6spy来观察Java程序中执行的所有SQL语句
2009-11-17 15:30 2166本想把 p6spy 结合 SQL Pro ... -
有用的ext grid 例子
2009-11-06 14:22 4338有用的ext grid 例子 ... -
Spring安全权限管理(Spring Security)
2009-11-04 14:02 6460Spring Security以前叫做acegi,是后来才成为 ... -
spring事务传播属性与隔离级别
2009-10-20 15:22 2077一、Propagation (事务的传播属性) Pro ... -
一个用Spring AOP实现异常处理和记录程序执行时间的实例
2009-10-20 15:05 31625.11 一个用Sprin ...
相关推荐
XXTEA算法的C语言实现,内含测试代码,编译后可直接运行
“微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA)都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。...XXTEA算法使用128bit的密钥对以32bit为单位的信息块进行加密。
XXTEA算法,全称是eXtended eXtremely Fast Encryption Algorithm,是由David Wheeler和Roger Needham在1998年提出的快速加密算法。它是一种块密码,对32位的整数序列进行操作。XXTEA算法相比DES等传统算法,有更高...
在提供的压缩包中,有两个关键文件,分别是`xxtea.cs`和`xxtea.js`,分别代表XXTEA算法的C#和JavaScript实现。C#是一种广泛用于开发Windows桌面应用、Web应用以及游戏的编程语言,而JavaScript则主要应用于网页和...
XXTEA算法是基于原有的分组TEA(Tiny Encryption Algorithm)进行改进的,它在保持高效运行的同时,提升了加密安全性。与TEA相比,XXTEA不仅具有更高的安全性能,可以有效抵御已知的攻击方式,还表现出更快的运行...
XXTEA算法是面向小整数序列的,通常用于简单的数据加密,如在网络通信、文件存储等领域。 在提供的文件列表中,我们看到了多种编程语言实现的XXTEA加密算法版本,包括Java、JavaScript、PHP、C#、ActionScript、C和...
xxtea-java, Java的XXTEA加密算法库 用于 Java 的 XXTEA 简介XXTEA是一种快速安全的加密算法。 这是一个用于Java的XXTEA库。它与原始的XXTEA加密算法不同。 它加密和解密字节 [] 而不是 32bit 整数 array,键也
XXtea算法使用一个迭代的过程,对每个数据块进行多次循环操作。在每次循环中,执行以下步骤: - 计算偏移值`delta`,通常是2^32除以加密轮数的一个小数部分。 - 对于每个数据块`v[i]`,计算`z[i] = v[i] + ((v[i+1...
XXTEA(Extreme eXtended TEA,极度扩展的TEA)是一种对称加密算法,由David Wheeler和Roger Needham在1994年提出,是对Tiny Encryption Algorithm(TEA)的改进版本。TEA虽然简洁,但在某些情况下可能不够安全,而...
XXTEA算法基于四轮循环操作,对32位整数进行处理。其基本流程包括四个步骤:Delta、Sum、Add和XOR。它通过一系列非线性的加法、异或和位移操作,使得密文难以被破解。XXTEA的密钥长度是128位,即16个字节,且算法对...
XXTEA算法是一种高效、简洁的微积分加密算法,由David Wheeler和Roger Needham于1994年提出,主要用于短数据块的加密。在给定的“xxtea.rar_XXTEA”压缩包中,我们可以看到一个名为“hello”的文件,这可能是用XXTEA...
1. **定义XXTEA算法的基本参数**:XXTEA算法基于四个字(32位)的块进行操作,因此需要将输入的数据按照四字节边界进行划分。同时,它使用两个密钥参数`delta`和`k`,其中`delta`通常是固定的常量,如0x9e3779b9,而...
XXTEA算法适用于各种编程语言,包括C#,在这里我们主要关注XXTEA在C#中的实现。 XXTEA算法基于四字节的块进行操作,通过一系列非线性变换对数据进行加密。它的核心是通过迭代循环进行加密,每次迭代都会对数据进行...
本资源提供的是一个Objective-C版本的XXTea封装器,方便开发者在iOS和Mac OS X平台中集成和使用XXTea算法。 XXTea(eXtended eXtended Encryption Algorithm)是由Dong Wei等人设计的一种快速加密算法,主要针对...
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据。TEA特点是速度快、效率高,实现也非常简单。由于针对TEA的攻击不断出现,所以TEA也发展出...
XXTEA算法基于密钥和数据块进行操作,数据块通常为64位,密钥长度则可以灵活调整。其核心算法是通过一系列循环操作和非线性变换实现数据的混淆和扩散,以此达到加密的效果。在解密过程中,算法会逆向执行这些操作,...
2. **安全性高**:经过改进后的XXTEA算法,相比原始的TEA算法,其安全性有了显著提高,不容易受到已知的攻击。 3. **块加密**:XXTEA是一种块密码,它处理固定大小的块(通常是64位),通过多次迭代改变输入块的值...
XXTEA算法主要设计用于快速、简单且高效的加密,特别适合于资源有限的环境,如嵌入式系统或JavaScript环境。 项目"xxtea-nodejs-master"的核心内容可能包括以下几个方面: 1. **源代码**:项目可能包含一个或多个....
XXtea算法通过迭代过程对数据进行加密,提供了较高的安全性,并且计算速度快,适用于嵌入式系统和移动设备。 2. **AES(Advanced Encryption Standard)加密算法**: AES,即高级加密标准,是目前广泛使用的对称...
- `cpp_code`可能包含C++源代码示例,展示了如何在C++项目中调用XXTEA算法进行加密和解密操作。 5. 部署和集成: - 将加密的资源和代码打包到最终的应用程序中,确保在运行时能正确解密。 - 在Cocos2d-lua中,...