Javascript 最快的平台/语言独立散列实现

Javascript 最快的平台/语言独立散列实现,javascript,java,algorithm,hash,Javascript,Java,Algorithm,Hash,我一直在寻找一种快速散列算法,结果发现它工作得很好。唯一的问题是我需要跨多种语言使用这种哈希,目前是Java+JavaScript。xxHash绑定似乎以不同的语言生成不同的值,所以我猜它不可移植 哪些是独立于语言的哈希算法?我之前的一个例子是MD5,但它与杂音/Farmhash/xxHash相比太慢了。正如这里的答案所示,有很多可移植的但很慢的算法,比如MD5——这就是为什么我明确表示,速度快对我很重要 请注意,我不需要任何加密,我正在哈希唯一性 编辑: 我不认为这是离题和征求意见;我希望有

我一直在寻找一种快速散列算法,结果发现它工作得很好。唯一的问题是我需要跨多种语言使用这种哈希,目前是Java+JavaScript。xxHash绑定似乎以不同的语言生成不同的值,所以我猜它不可移植

哪些是独立于语言的哈希算法?我之前的一个例子是MD5,但它与
杂音/Farmhash/xxHash
相比太慢了。正如这里的答案所示,有很多可移植的但很慢的算法,比如MD5——这就是为什么我明确表示,速度快对我很重要

请注意,我不需要任何加密,我正在哈希唯一性


编辑:


我不认为这是离题和征求意见;我希望有可靠的基准来证明算法是快速的,我要求有一种独立于语言的算法,这两种算法都可以消除意见作为有效信息源的问题

如果您使用的是nodejs,我建议您使用具有本机支持的nodejs。您将受益于这些实现的未来更新

名单如下:

它们是非常标准的算法,所以几乎可以在任何编程语言中找到,比如java或c

在节点中,可以调用
require('crypto').getHashes()
,并查看支持的哈希列表

我在我的电脑上运行了它,结果是:

[ 'DSA',
  'DSA-SHA',
  'DSA-SHA1',
  'DSA-SHA1-old',
  'RSA-MD4',
  'RSA-MD5',
  'RSA-MDC2',
  'RSA-RIPEMD160',
  'RSA-SHA',
  'RSA-SHA1',
  'RSA-SHA1-2',
  'RSA-SHA224',
  'RSA-SHA256',
  'RSA-SHA384',
  'RSA-SHA512',
  'dsaEncryption',
  'dsaWithSHA',
  'dsaWithSHA1',
  'dss1',
  'ecdsa-with-SHA1',
  'md4',
  'md4WithRSAEncryption',
  'md5',
  'md5WithRSAEncryption',
  'mdc2',
  'mdc2WithRSA',
  'ripemd',
  'ripemd160',
  'ripemd160WithRSA',
  'rmd160',
  'sha',
  'sha1',
  'sha1WithRSAEncryption',
  'sha224',
  'sha224WithRSAEncryption',
  'sha256',
  'sha256WithRSAEncryption',
  'sha384',
  'sha384WithRSAEncryption',
  'sha512',
  'sha512WithRSAEncryption',
  'shaWithRSAEncryption',
  'ssl2-md5',
  'ssl3-md5',
  'ssl3-sha1',
  'whirlpool' ]
我正在使用节点v4.2.1


您也可以使用。cryptojs支持的散列算法列表如下:

内置本机模块支持哪些散列ALG?刚刚更新了我的答案以提供支持的散列列表。但这并不能回答我的问题,因为我要求的是独立于语言的。虽然它们可能在其他平台上得到支持,但它们的算法也非常慢。奇怪的是,
xxhash
绑定不应该生成不同的散列值。它们应该完全相同。有两个版本,xxh32和xxh64。确保比较相似的版本。