java中类似php md5的算法,可以取得文件,字符串和输入流的md5值
2010-08-09 16:37
471 查看
java中类似php md5的算法,可以取得文件,字符串和输入流的md5值
import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.security.MessageDigest; public class MD5Utils { private static MD5Utils instance=null; private static MessageDigest md5 =null; private MD5Utils(){}; public static MD5Utils getInstance() { try { instance=new MD5Utils(); md5=MessageDigest.getInstance("MD5"); }catch(Exception e) { return null; } return instance; } public String getStringHash(String source) { String hash=null; try { ByteArrayInputStream in=new ByteArrayInputStream(source.getBytes()); hash=getStreamHash(in); in.close(); }catch (Exception e) { e.printStackTrace(); } return hash; } public String getFileHash(String file) { String hash=null; try { FileInputStream in=new FileInputStream(file); hash=getStreamHash(in); in.close(); }catch (Exception e) { e.printStackTrace(); } return hash; } public String getStreamHash(InputStream stream) { String hash=null; byte[] buffer = new byte[1024]; BufferedInputStream in=null; try { in=new BufferedInputStream(stream); int numRead = 0; while ((numRead = in.read(buffer)) > 0) { md5.update(buffer, 0, numRead); } in.close(); hash=toHexString(md5.digest()); }catch (Exception e) { if(in!=null)try{in.close();}catch (Exception ex) {ex.printStackTrace();} e.printStackTrace(); } return hash; } private String toHexString(byte[] b) { StringBuilder sb = new StringBuilder(b.length * 2); for (int i = 0; i < b.length; i++) { sb.append(hexChar[(b[i] & 0xf0) >>> 4]); sb.append(hexChar[b[i] & 0x0f]); } return sb.toString(); } private char[] hexChar = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; public static void main(String[] args) { System.out.println(MD5Utils.getInstance().getStringHash("yepanpan")); //System.out.println(MD5Utils.getInstance().getFileHash("E://software//2003_Visio_Pro.iso")); } }
相关文章推荐
- 计算字符串的MD5值和MD5文件摘要
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- Java利用MessageDigest获取字符串或文件MD5详解
- Java利用MessageDigest获取字符串或文件MD5详解
- 回复:String中如果有中文,如何保证length()返回的长度 在 Java 中字符串是以 Unicode 方式编码的,所以,无论中英文都算的长度为 1。根据你的描述,估计是想要取得英文长度为 1 中文长度为 2 的总长度吧。这个,理论上可以构造 An
- Java利用MessageDigest获取字符串或文件MD5详解
- JAVA获取字符串或者文件的MD5值
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- java 文件md5+字符串md5 实现
- 在PHP中,通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。如果要转换文件大小的单位,可以自己定义函数来实现。
- Java利用MessageDigest获取字符串或文件MD5详解
- Java计算字符串和文件的MD5与SHA1
- 获取文件的md5(java & php)
- java 获取字符串或文件的md5值
- 加密:Java利用MessageDigest获取字符串或文件MD5详解
- java 实现字符串以及文件的md5、sha计算完整代码
- windows 平台下生成 hash 值的几款软件,支持的算法有 md5 、sha1 等,可以校验下载文件的完整性
- Java利用MessageDigest获取字符串或文件MD5详解
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
- java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩