Android, вычисление хэша SHA-1 из файла, самый быстрый алгоритм

У меня проблема с производительностью SHA-1 на Android. В C # я получаю вычисленный хэш примерно за 3 секунды, такой же расчет для Android занимает около 75 секунд. Я думаю, что проблема заключается в чтении операции из файла, но я не уверен, как повысить производительность.

Вот мой метод генерации хэшей.

private static String getSHA1FromFileContent(String filename)
    {

        try
        {
            MessageDigest digest = MessageDigest.getInstance("SHA-1");
            //byte[] buffer = new byte[65536]; //created at start.
            InputStream fis = new FileInputStream(filename);
            int n = 0;
            while (n != -1)
            {
                n = fis.read(buffer);
                if (n > 0)
                {
                    digest.update(buffer, 0, n);
                }
            }
            byte[] digestResult = digest.digest();
            return asHex(digestResult);
        }
        catch (Exception e)
        {
            return null;
        }
    }

Есть идеи, как я могу улучшить производительность?

12
задан keithbhunter 10 November 2015 в 14:07
поделиться