SHA Hash函数C vs java

时间:2015-06-04 19:33:31

标签: java c hash

我正在阅读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

0 个答案:

没有答案