code: public byte[] digest(InputStream data, int bufferLength) throws IORuntimeException {
  		if (bufferLength < 1) {
  			bufferLength = IoUtil.DEFAULT_BUFFER_SIZE;
  		}
  		
  		byte[] result;
  		try {
  			if (ArrayUtil.isEmpty(this.salt)) {
  				result = digestWithoutSalt(data, bufferLength);
  			} else {
  				result = digestWithSalt(data, bufferLength);
  			}
  		} catch (IOException e) {
  			throw new IORuntimeException(e);
  		}
  		
  		return resetAndRepeatDigest(result);
  	}
docs: 生成摘要
  
  @param data {@link InputStream} 数据流
  @param bufferLength 缓存长度，不足1使用 {@link IoUtil#DEFAULT_BUFFER_SIZE} 做为默认值
  @return 摘要bytes
  @throws IORuntimeException IO异常