I have a problem with SHA-1 performance on Android. In C# I get calculated hash in about 3s, same calculation for Android takes about 75s. I think the problem is in reading operation from file, but I'm not sure how to improve performance.
Here's my hash generation method.
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; } } Any ideas how can I improve performance?
asHex(..)method (just return byte[]).