/**
* @function :MD5
*
* @author :Makenna
*
* @date : 2014-4-10
*/
package com.xba.game.common
{
public class Md5Util{
public function Md5Util(){}
public static var hexcase:Number = 0;
public static var b64pad:String = "";
public static var chrsz:Number = 8;
public static function calculate(s:*):*{ return hex_md5(s); };
public static function hex_hmac_md5(key:*, data:*):*{ return binl2hex(core_hmac_md5(key, data)); }
public static function b64_hmac_md5(key:*, data:*):*{ return binl2b64(core_hmac_md5(key, data)); }
public static function str_hmac_md5(key:*, data:*):*{ return binl2str(core_hmac_md5(key, data)); }
private static function hex_md5(s:*):*{ return binl2hex(core_md5(str2binl(s), s.length*chrsz)); }
private static function b64_md5(s:*):*{ return binl2b64(core_md5(str2binl(s), s.length*chrsz)); }
private static function str_md5(s:*):*{ return binl2str(core_md5(str2binl(s), s.length*chrsz)); }
private static function core_md5(x:*,len:*):* {
x[len >> 5] |= 0x80 << ((len)%32); x[(((len+64) >>> 9) << 4)+14] = len;
var a:* = 1732584193; var b:* = -271733879; var c:* = -1732584194; var d:* = 271733878;
for (var i:* = 0; i<x.length; i += 16) {
var olda:* = a; var oldb:* = b; var oldc:* = c; var oldd:* = d;
a = md5_ff(a, b, c, d, x[i+0], 7, -680876936);
d = md5_ff(d, a, b, c, x[i+1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+4], 7, -176418897);
d = md5_ff(d, a, b, c, x[i+5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+8], 7, 1770035416);
d = md5_ff(d, a, b, c, x[i+9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7, 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+1], 5, -165796510);
d = md5_gg(d, a, b, c, x[i+6], 9, -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+5], 5, -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9, 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+9], 5, 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9, -1019803690);
c = md5_gg(c, d, a, b, x[i+3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5, -1444681467);
d = md5_gg(d, a, b, c, x[i+2], 9, -51403784);
c = md5_gg(c, d, a, b, x[i+7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+5], 4, -378558);
d = md5_hh(d, a, b, c, x[i+8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+1], 4, -1530992060);
d = md5_hh(d, a, b, c, x[i+4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4, 681279174);
d = md5_hh(d, a, b, c, x[i+0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+9], 4, -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+0], 6, -198630844);
d = md5_ii(d, a, b, c, x[i+7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6, 1700485571);
d = md5_ii(d, a, b, c, x[i+3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+8], 6, 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+4], 6, -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+9], 21, -343485551);
a = safe_add(a, olda); b = safe_add(b, oldb);
c = safe_add(c, oldc); d = safe_add(d, oldd);
} return new Array(a, b, c, d);
}
private static function md5_cmn(q:*,a:*,b:*,x:*,s:*,t:*):*{ return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); }
private static function md5_ff(a:*,b:*,c:*,d:*,x:*,s:*,t:*):*{ return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); }
private static function md5_gg(a:*,b:*,c:*,d:*,x:*,s:*,t:*):*{ return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); }
private static function md5_hh(a:*,b:*,c:*,d:*,x:*,s:*,t:*):*{ return md5_cmn(b ^ c ^ d, a, b, x, s, t); }
private static function md5_ii(a:*,b:*,c:*,d:*,x:*,s:*,t:*):*{ return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); }
private static function bit_rol(num:*,cnt:*):*{ return (num << cnt) | (num >>> (32-cnt)); }
private static function safe_add(x:*,y:*):*{
var lsw:* = (x & 0xFFFF)+(y & 0xFFFF);
var msw:* = (x >> 16)+(y >> 16)+(lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
private static function str2binl(str:*):*{
var bin:Array = new Array();
var mask:* = (1 << chrsz)-1;
for (var i:int = 0; i<str.length*chrsz; i += chrsz) bin[i >> 5] |= (str.charCodeAt(i/chrsz) & mask) << (i%32);
return bin;
}
private static function binl2hex(binarray:*):*{
var hex_tab:String = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str:String = "";
for (var i:int = 0; i<binarray.length*4; i++) {
str += hex_tab.charAt((binarray[i >> 2] >> ((i%4)*8+4)) & 0xF)+hex_tab.charAt((binarray[i >> 2] >> ((i%4)*8)) & 0xF);
} return str;
}
private static function core_hmac_md5(key:*,data:*):*{
var bkey:* = str2binl(key);
if (bkey.length>16) bkey = core_md5(bkey, key.length*chrsz);
var ipad:* = new Array(16)
var opad:* = new Array(16);
for (var i:int = 0; i<16; i++) {
ipad = bkey ^ 0x36363636;
opad = bkey ^ 0x5C5C5C5C;
}
var hash:* = core_md5(ipad.concat(str2binl(data)), 512+data.length*chrsz);
return core_md5(opad.concat(hash), 512+128);
}
private static function binl2str(bin:*):*{
var str:String = "";
var mask:* = (1 << chrsz)-1;
for (var i:int = 0; i<bin.length*32; i += chrsz) str += String.fromCharCode((bin[i >> 5] >>> (i%32)) & mask);
return str;
}
private static function binl2b64(binarray:*):*{
var tab:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str:String = "";
for (var i:int = 0; i<binarray.length*4; i += 3) {
var triplet:* = (((binarray[i >> 2] >> 8*(i%4)) & 0xFF) << 16) | (((binarray[i+1 >> 2] >> 8*((i+1)%4)) & 0xFF) << 8) | ((binarray[i+2 >> 2] >> 8*((i+2)%4)) & 0xFF);
for (var j:int = 0; j<4; j++) {
if (i*8+j*6>binarray.length*32) str += b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}return str;
}
}
}
- 浏览: 909459 次
- 性别:
- 来自: 青岛
-
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
相关推荐
MD5加密广泛应用于各种领域,包括数据存储、网络传输和身份验证等。 在jsp网页中实现MD5加密可以使用JavaBean来实现。MD5类实现了RSA Data Security公司的MD5 message-digest算法。该类中定义了一些静态final变量,...
在Excel中,我们可以利用两种方法对字段进行MD5加密:VBA(Visual Basic for Applications)函数和宏。以下将详细介绍这两种方法。 首先,我们来看VBA函数的实现。VBA是Excel内置的编程环境,允许用户自定义函数和...
输入需要加密的字符串,有两种加密方式,普通md5加密和加盐MD5加密。根据需要生成。
在IT领域,尤其是在数据库安全与数据完整性保护方面,MD5加密技术被广泛应用于各种场景,包括用户密码存储、数据校验等。Oracle数据库作为一种企业级的数据库管理系统,提供了多种方式来实现MD5加密,这对于确保数据...
本主题提供的“windows下MD5加密工具bat文件”是一个基于批处理脚本(.bat)的解决方案,允许用户在没有额外安装软件的情况下进行MD5加密操作。 批处理文件(.bat)是Windows操作系统中的一个特殊文本文件,它可以...
MD5加密算法的VB6.0类模块实例 MD5加密算法是目前广泛使用的一种加密算法,主要用于数据完整性和身份验证。VB6.0是微软公司开发的一种编程语言,广泛应用于Windows操作系统的开发中。该类模块实例将MD5加密算法与VB...
批量MD5加密工具,如"苏苏MD5批量加密工具.exe",是为了方便用户处理大量文件的MD5计算而设计的。这样的工具通常具有以下功能: 1. **多文件处理**:一次可以处理多个文件,节省了逐个手动计算的时间。 2. **快速...
C# MD5加密类型支持:1-16位的加密;2-32位加密;3:base64加密对应JAVA md5 16位的加密;2-32位加密;3:base64加密
javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5加密 MD5加密javaMD5...
java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密方法 java Md5加密...
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...
附:如果遇到MD5加密文件,而又不知道的密码的,请在数据库中换上这组加密的数据。 admin---16位加密---7a57a5a743894a0e admin---32位加密---21232f297a57a5a743894a0e4a801fc3 admin---40位加密---7a57a5a743894...
在前端开发中,有时候为了增强数据安全性,可能需要在客户端对敏感信息进行MD5加密。jQuery是一个流行的JavaScript库,虽然它主要用于DOM操作和事件处理,但通过扩展,我们可以在jQuery环境下实现MD5加密。 首先,...
java Md5加密方法 java Md5加密方法java Md5加密方法 java Md5加密方法java Md5加密方法 java Md5加密方法java Md5加密方法 java Md5加密方法java Md5加密方法 java Md5加密方法java Md5加密方法 java Md5加密方法...
用于处理密码加密,加密格式为MD5,提供的为工具类,里面包含多个静态方法 如md5(String)
标题和描述中提到的“qt5AES加密”是指使用Qt5框架实现的AES(Advanced Encryption Standard)加密技术。AES是一种广泛使用的对称加密算法,以其高效和安全性著称。"ES加密/解密算法"可能是描述错误,通常指的是AES...
但是,题目中提到的"36位MD5加密字符"可能是指将32位的MD5值转换为特定格式,例如每8位用一个分隔符分隔,或者使用非十六进制字符来表示。在Java中,我们可以使用`java.security.MessageDigest`类来计算MD5哈希。 ...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,用于产生一个固定长度的摘要,通常用于数据的加密和验证完整性。本Demo主要展示了如何在Android平台上进行MD5加密和解密操作。 MD5并不是一种加密算法...
MD5各种加密。 番外:对文本+key进行md5 code32加密 再进行base64代码 /** 该方法是对文本+key进行md5 code32加密 再进行base64 @return 加密后的text */ - (NSString *)getSecretKeyWithString:(NSString *)...
5. **扩展应用**:除了基本的加密,MD5还可以用于比较文件的完整性,例如,下载大文件后,可以通过计算本地文件和服务器上文件的MD5值来验证文件是否完整无误。 6. **学习资源**:学习VBA和MD5宏编写,可以参考在线...