日期:2014-05-18  浏览次数:20749 次

相当笨,但是相当经典`````
相当笨,但是相当经典`````
jsp中怎么用md5啊????

------解决方案--------------------
和JSP里面没有关系

直接调用api就可以了
------解决方案--------------------
用Java代码弄好,使用标签或者JavaBean方式调用就行,最坏的办法就是在JSP中直接嵌入Java代码
------解决方案--------------------
MessageDigest md = MessageDigest.getInstance( "MD5 ");
------解决方案--------------------
此 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。

MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。

对于给定数量的更新数据,digest 方法只能被调用一次。digest 被调用后,MessageDigest 对象被重新设置成其初始状态。

实现可随意选择是否实现 Cloneable 接口。客户端应用程可以通过尝试复制和捕获 CloneNotSupportedException 测试可复制性:

MessageDigest md = MessageDigest.getInstance( "SHA ");

try {
md.update(toChapter1);
MessageDigest tc1 = md.clone();
byte[] toChapter1Digest = tc1.digest();
md.update(toChapter2);
...etc.
} catch (CloneNotSupportedException cnse) {
throw new DigestException( "couldn 't make digest of partial content ");
}

------解决方案--------------------
... so classic ...
you cheat
------解决方案--------------------
hao
------解决方案--------------------
public final static String MD5(String s) {
char hexDigits[] = {
'0 ', '1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', 'a ', 'b ', 'c ', 'd ',
'e ', 'f '};
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance( "MD5 ");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 > > > 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
}
catch (Exception e) {
return null;
}
}