content: package com.lidroid.xutils.cache;
  
  import java.security.MessageDigest;
  import java.security.NoSuchAlgorithmException;
  
  /**
   * Author: wyouflf
   * Date: 14-5-16
   * Time: 上午11:25
   */
  public class MD5FileNameGenerator implements FileNameGenerator {
      public MD5FileNameGenerator() {
      }
  
      public String generate(String key) {
          String cacheKey;
          try {
              final MessageDigest mDigest = MessageDigest.getInstance("MD5");
              mDigest.update(key.getBytes());
              cacheKey = bytesToHexString(mDigest.digest());
          } catch (NoSuchAlgorithmException e) {
              cacheKey = String.valueOf(key.hashCode());
          }
          return cacheKey;
      }
  
      private String bytesToHexString(byte[] bytes) {
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < bytes.length; i++) {
              String hex = Integer.toHexString(0xFF & bytes[i]);
              if (hex.length() == 1) {
                  sb.append('0');
              }
              sb.append(hex);
          }
          return sb.toString();
      }
  }
  