站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题一个关于java md5加密的问题,困扰小弟好多天了,泣求!!!(我的社区就剩50分了,抱歉)

一个关于java md5加密的问题,困扰小弟好多天了,泣求!!!(我的社区就剩50分了,抱歉)

摘要: 一个关于java md5加密的问题,困扰小弟好多天了,泣求!!!(我的社区就剩50分了,抱歉)


我是将一个asp网站改版,在导入原有网站数据时在密码加密那出现了麻烦:
原网站是用asp加密的16位密码,但不知道在java中怎么能加密成和我原asp中一样的密码,这里我有两个疑问:

1、在java中,我们一般是用java.security下的东西来加密,一般没有人去实现整个md5加加密的算法
过程,那么我不知道asp的加密方式和java的加密方式是不是一样,是不是所有的md5加密的结果都
是一样的(如果加密后的位数是一样的)?不管是asp还是java,或者是其他的?

2、小弟还在想,md5的加密结果是不是可以人为地改变

希望各位大虾们拿出援助之手,来解救我这只迷途的羔羊吧!
希望得到java md5与asp md5加密结果一样的代码。


结果是一样的


这里有个Hash算法
http://blog.csdn.net/fengfangfang/archive/2006/08/16/1068563.aspx


如果加密结果一样的话,我想要一个加密成16位码的java md5加密类
楼上的加密结果好像不行啊,先谢了!!!


MD5标准加密出来是32位的
一般16位的是截取了其中一部分


1、结果使一样的
2、不可以人为改变

import java.security.MessageDigest;

/**
* 文本信息摘要
* @param fileStr
* @return
*/
public static String File2MD5Str(String fileStr){
String EnptyMD5Str="";
byte[] filebyte=null;
File xmlfile=null;
FileInputStream fi=null;
int EveryDobytelen=10000000;//10M

//System.out.println(fileStr+" begin "+Calendar.getInstance().getTime());

//299383067
try {
xmlfile=new File(fileStr);

fi= new FileInputStream(xmlfile);
long fl=fi.available();
int fsize=Integer.parseInt(String.valueOf(fl));
int loopnum= fsize/EveryDobytelen;
int last= fsize%EveryDobytelen;

if(loopnum<5){
filebyte=new byte[fsize];
fi.read(filebyte,0,fsize);
EnptyMD5Str=byte2MD5Str(filebyte);

}

//如果文件尺寸超过50M采用分段流处理
else{
String appStr="";//分段MD集合

//如果文件尺寸超过200M,每次读50M字节,减少MD次数,提高效率。
//if(loopnum>20) {
//EveryDobytelen=50000000;//50M
//loopnum= fsize/EveryDobytelen;
//last= fsize%EveryDobytelen;
//}


filebyte=new byte[EveryDobytelen];


for(int i=0;i fi.read(filebyte,0,EveryDobytelen);
String getMDStr=byte2MD5Str(filebyte);
appStr+=getMDStr;

}


if (last>0){

int leftsize= fsize-loopnum*EveryDobytelen;
fi.read(filebyte,0,leftsize);
String getMDStr=byte2MD5Str(filebyte);
appStr+=getMDStr;

}

EnptyMD5Str=byte2MD5Str(appStr.getBytes());

}




}


catch(Exception ex){

ex.printStackTrace();
}

finally{

filebyte=null;
xmlfile=null;
try{
fi.close();
}catch(Exception e){}
}

return EnptyMD5Str;

}


多谢各位,问题解决了,给分



是用谁的方法解决的,还是用自己的方法


↑返回目录
前一篇: request.getParameter()得不到 +和%
后一篇: 100分求孙卫琴的《精通Structs:基于MVC的Java Web设计与开发》的光盘内容?