2008-11-26

Java中的MD5的使用

  一般来说定长度输出只需要用hash方法就可以了,不过有时候需要用md5的值来进行一些特别的处理工作,所以要用到它,自己写md5比较麻烦,所以可以用java.security包里面的东西。以下是网上搜到的一个范例:


  1. public class HashUtils {
  2. /**
  3. * 文件SHA-1 Hash值生成器
  4. *
  5. * @param in
  6. * @return
  7. * @throws Exception
  8. */
  9. public static String generateFileSHA1(String fileUrl) throws Exception {
  10. InputStream in = new BufferedInputStream(new FileInputStream(fileUrl));
  11. MessageDigest md = MessageDigest.getInstance("SHA-1");
  12. byte[] buffer = new byte[8192];
  13. int length = -1;
  14. while ((length = in.read(buffer)) != -1) {
  15. md.update(buffer, 0, length);
  16. }
  17. return StringBytesTransformUtils.bytesToHexString(md.digest());
  18. }
  19. /**
  20. * 文件MD5 Hash值生成器
  21. *
  22. * @param fileUrl
  23. * @return
  24. * @throws Exception
  25. */
  26. public static String generateFileMD5(String fileUrl) throws Exception {
  27. InputStream in = new BufferedInputStream(new FileInputStream(fileUrl));
  28. MessageDigest md = MessageDigest.getInstance("MD5");
  29. byte[] buffer = new byte[8192];
  30. int length = -1;
  31. while ((length = in.read(buffer)) != -1) {
  32. md.update(buffer, 0, length);
  33. }
  34. return StringBytesTransformUtils.bytesToHexString(md.digest());
  35. }
  36. }

没有评论: