我正在阅读this paper,并在页面12的开头说:
我们使用比率cHash = cPrng = 0.002 ms,这是我们在奔腾双核1.8GHz上使用SHA1的Java实现获得的。
这里cHash是散列函数SHA的一个应用程序的成本。我的问题是:有可能吗?有人证实了吗?使用Linux,gcc和库openssl / sha.h的SHA1(在输入{0x61,0x62,0x63}上)我得到0.002s并使用java我得到平均0.088s
import java.security.MessageDigest;
public class test_SHA_java
{
public static void main(String[] args)throws Exception
{
MessageDigest md = MessageDigest.getInstance("SHA-1");
String text = "This is some text";
md.update(text.getBytes("UTF-8")); // Change this to "UTF-16" if needed
byte[] digest = md.digest();
}
}
real 0m0.087s
user 0m0.080s
sys 0m0.022s
这是C代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <openssl/sha.h>
void hashc(void *src, size_t slen)
{
unsigned char md1[SHA_DIGEST_LENGTH];
SHA1(src, slen, md1);
}
int main()
{
unsigned char data[] = {0x61,0x62,0x63}; // "abc"
hashc(data, SHA_DIGEST_LENGTH);
return 0;
}
real 0m0.002s
user 0m0.000s
sys 0m0.001s