java的md5加密,长度居然会变呀?.微软的就16位或者32位,怎么办?不一样啊 java的md5加密,长度居然会变呀?.微软的就16位或者32位,怎么办?不一样啊我想java跟.net一起都使用,但是加密的长度和内容,有一点不一样,java会长点或者短点,通常是加了0或者减少了0,怎么办办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么16,32位? MD5 HASH 不是128位输出吗? /** * 计算文件的MD5 * @Author Alabaza */public static String getFileMD5(File file) throws NoSuchAlgorithmException, IOException { MessageDigest md = MessageDigest.getInstance("MD5"); FileInputStream fins = new FileInputStream(file); DigestInputStream dins = new DigestInputStream(fins,md); byte[] buf = new byte[0X1000]; while(dins.read(buf) != -1) { } dins.close(); return bytestoHex(dins.getMessageDigest().digest()); } public static String bytestoHex(byte[] b) { String hs = ""; String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = (Integer.toHexString(b[n] & 0XFF)); if (stmp.length() == 1) hs = hs + "0" + stmp; else hs = hs + stmp; } return hs.toUpperCase(); } 这个更好..public static String encodeMD5(String text) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(text.getBytes()); byte[] digest = md.digest(); StringBuffer md5 = new StringBuffer(); for (int i = 0; i < digest.length; i++) { md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16)); md5.append(Character.forDigit((digest[i] & 0xF), 16)); } return md5.toString();} 谁给个java1.5的下载地址,要真实滴 求助--毕业设计在pudn上下几个资料 请教一个返回数据的问题 火线求救!!!关于包的引用问题! IBM笔试题 关于socket的问题, java中有exit么? 请各位高手救救小弟!!! 请问:java2D,java3D图形设计方面的资料(web site or books) [数据结构]随机数序列 合并png图片,大家帮帮忙 【UML的问题】在通讯图(就是2.0的协作图里)如何对if-else建模?
* 计算文件的MD5
* @Author Alabaza
*/
public static String getFileMD5(File file) throws NoSuchAlgorithmException, IOException
{
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fins = new FileInputStream(file);
DigestInputStream dins = new DigestInputStream(fins,md);
byte[] buf = new byte[0X1000];
while(dins.read(buf) != -1)
{
}
dins.close();
return bytestoHex(dins.getMessageDigest().digest());
} public static String bytestoHex(byte[] b)
{
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++)
{
stmp = (Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
hs = hs + "0" + stmp;
else
hs = hs + stmp;
}
return hs.toUpperCase();
}
public static String encodeMD5(String text) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(text.getBytes());
byte[] digest = md.digest();
StringBuffer md5 = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16));
md5.append(Character.forDigit((digest[i] & 0xF), 16));
}
return md5.toString();
}