code: private static byte[] digest(final byte[] input, final String algorithm, final byte[] salt, final int iterations) {
  		try {
  			MessageDigest digest = MessageDigest.getInstance(algorithm);
  
  			if (salt != null) {
  				digest.update(salt);
  			}
  
  			byte[] result = digest.digest(input);
  
  			for (int i = 1; i < iterations; i++) {
  				digest.reset();
  				result = digest.digest(result);
  			}
  			return result;
  		} catch (NoSuchAlgorithmException e) {
  			throw new ImpossibleException(e);
  		}
  	}
docs: 对字节数组进行散列，支持 md5 与 sha1 算法。
  
  @param input
  输入
  @param algorithm
  算法名
  @param salt
  扰码
  @param iterations
  计算轮数
  @return 散列码