private String signDigest(byte[] source, MessageDigest digest) {
        digest.update(source);
        byte[] data = digest.digest();
        int j = data.length;
        char str[] = new char[j * 2];
        int k = 0;
        for (byte byte0 : data) {
            str[k++] = HEX_DIGITS[byte0 >>> 4 & 0xf];
            str[k++] = HEX_DIGITS[byte0 & 0xf];
        }
        return new String(str).toLowerCase(Locale.getDefault());
    }
@param width  must > 0
@param height must > 0
boxing/src/main/java/com/bilibili/boxing/utils/ImageCompressor.java