2006-12-09

在JSP中如何实现MD5加密

来源: 本站收集整理 作者:佚名 评论 0 条
 Init() {
count[0] = 0L;
count[1] = 0L;
///* Load magic initialization constants.

state[0] = 0x67452301L;
state[1] = 0xefcdab89L;
state[2] = 0x98badcfeL;
state[3] = 0x10325476L;

return;
}
/* F, G, H ,I 是4个基本的MD5函数,在原始的MD5的C实现中,由于它们是
简单的位运算,可能出于效率的考虑把它们实现成了宏,在java中,我们把它们
  实现成了private方法,名字保持了原来C中的。 */

private long F(long x, long y, long z) {
return (x & y) | ((~x) & z);

}
private long G(long x, long y, long z) {
return (x & z) | (y & (~z));

}
private long H(long x, long y, long z) {
return x ^ y ^ z;
}

private long I(long x, long y, long z) {
return y ^ (x | (~z));
}

/*
FF,GG,HH和II将调用F,G,H,I进行近一步变换
FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
Rotation is separate from addition to prevent recomputation.
*/

private long FF(long a, long b, long c, long d, long x, long s,
long ac) {
a = F (b, c, d) x ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a = b;
return a;
}

private long GG(long a, long b, long c, long d, long x, long s,
long ac) {
a = G (b, c, d) x ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a = b;
return a;
}
private long HH(long a, long b, long c, long d, long x, long s,
long ac) {
a = H (b, c, d) x ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a = b;
return a;
}
private long II(long a, long b, long c, long d, long x, long s,
long ac) {
a = I (b, c, d) x ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a = b;
return a;
}
/*
md5Update是MD5的主计算过程,inbuf是要变换的字节串,inputlen是长度,这个
函数由getMD5ofStr调用,调用之前需要调用md5init,因此把它设计成private的
共8页: 上一页 [1] [2] 3 [4] [5] [6] [7] [8] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:C#实现类似qq的屏幕截图程序  
下一篇:JSP任意验证码
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号