Java SHA1 sha1Hash(File file)

Here you can find the source of sha1Hash(File file)

Description

Generate a SHA.1 Hash for a given file.

License

Apache License

Parameter

Parameter Description
file the file to hash

Exception

Parameter Description
IOException if the file cannot be read

Return

the hash value as a String

Declaration

public static String sha1Hash(File file) throws IOException 

Method Source Code


//package com.java2s;
/*/*from   w w  w  .  j a  v  a 2 s.  c o  m*/
 * Copyright 2012-2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Main {
    /**
     * Generate a SHA.1 Hash for a given file.
     * @param file the file to hash
     * @return the hash value as a String
     * @throws IOException if the file cannot be read
     */
    public static String sha1Hash(File file) throws IOException {
        try {
            DigestInputStream inputStream = new DigestInputStream(new FileInputStream(file),
                    MessageDigest.getInstance("SHA-1"));
            try {
                byte[] buffer = new byte[4098];
                while (inputStream.read(buffer) != -1) {
                    // Read the entire stream
                }
                return bytesToHex(inputStream.getMessageDigest().digest());
            } finally {
                inputStream.close();
            }
        } catch (NoSuchAlgorithmException ex) {
            throw new IllegalStateException(ex);
        }
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder hex = new StringBuilder();
        for (byte b : bytes) {
            hex.append(String.format("%02x", b));
        }
        return hex.toString();
    }
}

Related

  1. sha1Hash()
  2. sha1hash(byte[] blob)
  3. sha1Hash(byte[] data)
  4. sha1hash(Collection nquads)
  5. sha1hash(File f)
  6. sha1Hash(final String tohash)
  7. sha1Hash(InputStream in)
  8. sha1Hash(String content)
  9. sha1Hash(String input)