public static void write( final File file, final InputStream data, final MessageDigest messageDigest) throws IOException { try (DigestOutputStream os = new DigestOutputStream(new FileOutputStream(file), messageDigest)) { copy(data, os); } final String digest = digestAsHex(messageDigest); final String fileName = file.getName(); final String content = String.format("%s %s", digest, fileName); final String algorithm = messageDigest.getAlgorithm().toLowerCase(); final String targetFileName = String.format("%s.%s", file.getAbsolutePath(), algorithm); write(new File(targetFileName), content); }
public static void write( final File file, final InputStream data, final MessageDigest messageDigest) throws IOException { try (DigestOutputStream os = new DigestOutputStream(new FileOutputStream(file), messageDigest)) { copy(data, os); } final String digest = digestAsHex(messageDigest); final String fileName = file.getName(); final String content = String.format("%s %s", digest, fileName); final String algorithm = messageDigest.getAlgorithm().toLowerCase(); final String targetFileName = String.format("%s.%s", file.getAbsolutePath(), algorithm); write(new File(targetFileName), content); }
public static String sha1Hex(final InputStream data) throws IOException { final MessageDigest messageDigest = updateDigest(getSha1Digest(), data); return digestAsHex(messageDigest); }
public static String sha1Hex(final InputStream data) throws IOException { final MessageDigest messageDigest = updateDigest(getSha1Digest(), data); return digestAsHex(messageDigest); }
public static boolean canRead(final File file, final MessageDigest messageDigest) { boolean isReadable = false; final File checksum = new File(file.getAbsolutePath() + "." + messageDigest.getAlgorithm().toLowerCase()); if (file.exists() && checksum.exists()) { String checksumDigest = null; String checksumFileName = null; try (InputStream is = new FileInputStream(checksum)) { final byte[] data = new byte[(int) checksum.length()]; read(is, data); final String content = fromBytes(data); final String[] parts = content.split(" "); checksumDigest = parts[0]; checksumFileName = parts[1]; } catch (final IOException e) { // ignore } if (checksumFileName.equals(file.getName())) { try (InputStream is = new FileInputStream(file)) { updateDigest(messageDigest, is); } catch (final IOException e) { // ignore } final String digest = digestAsHex(messageDigest); isReadable = digest.equals(checksumDigest); } } return isReadable; }
public static boolean canRead(final File file, final MessageDigest messageDigest) { boolean isReadable = false; final File checksum = new File(file.getAbsolutePath() + "." + messageDigest.getAlgorithm().toLowerCase()); if (file.exists() && checksum.exists()) { String checksumDigest = null; String checksumFileName = null; try (InputStream is = new FileInputStream(checksum)) { final byte[] data = new byte[(int) checksum.length()]; read(is, data); final String content = fromBytes(data); final String[] parts = content.split(" "); checksumDigest = parts[0]; checksumFileName = parts[1]; } catch (final IOException e) { // ignore } if (checksumFileName.equals(file.getName())) { try (InputStream is = new FileInputStream(file)) { updateDigest(messageDigest, is); } catch (final IOException e) { // ignore } final String digest = digestAsHex(messageDigest); isReadable = digest.equals(checksumDigest); } } return isReadable; }