我在Android上使用SHA-1算法的性能出了问题。在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;
}
}
有什么好的方法可以提高性能吗?
asHex(..)
方法的情况下运行您的代码(只返回byte[])。 - Peter Knego