J2ME经验总结之MD5
来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 05:09 点击:次
md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
下面是以前扒来的MD5算法的JAVA版本,J2ME可以放心使用。
package common;
public class HMD5 {
public class HMD5 {
/*
* 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的,这里把它们 /* 实现成为static
* final是表示了只读,切能在同一个进程空间内的多个Instance间共享
*/
* 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的,这里把它们 /* 实现成为static
* final是表示了只读,切能在同一个进程空间内的多个Instance间共享
*/
private static final int S11 = 7;
private static final int S12 = 12;
private static final int S13 = 17;
private static final int S14 = 22;
private static final int S21 = 5;
private static final int S22 = 9;
private static final int S23 = 14;
private static final int S24 = 20;
private static final int S31 = 4;
private static final int S32 = 11;
private static final int S33 = 16;
private static final int S34 = 23;
private static final int S41 = 6;
private static final int S42 = 10;
private static final int S43 = 15;
private static final int S44 = 21;
private static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
/* 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中 */
/* 被定义到MD5_CTX结构中 */
private static long[] state = new long[4]; // state (ABCD)
private static long[] count = new long[2]; // number of bits, modulo 2^64
// (lsb
// first)
private static byte[] buffer = new byte[64]; // input buffer
/* digestHexStr是MD5的唯一一个公共成员,是最新一次计算结果的16进制ASCII表示. */
private static String digestHexStr;
/* digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值. */
private static byte[] digest = new byte[16];
/* getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符
相关新闻>>
- 发表评论
-
- 最新评论 更多>>