2012-03-09 61 views
3

我想用客户端Javascript生成SHA1或类似的哈希。换句话说,使用IE,FF和Webkit提供的Javascript引擎。我想知道什么哈希实现存在?现代Javascript支持哪些哈希算法?

+3

有很多。 Google是你的朋友。 (例如:http://www.webtoolkit.info/javascript-sha1。HTML) – 2012-03-09 17:53:26

+2

@ user1150525 - 我认为OP正在浏览器中寻找只使用JS引擎的实现。我昨晚自己也在寻找同样的东西来避免依赖第三方库。 – 2012-03-09 18:14:23

回答

5

我不相信有任何直接构建到浏览器中,但有一些记录良好的实现。

我发现,最好的是http://code.google.com/p/crypto-js/经由CDN是可用的,并且支持:

  • MD5
  • SHA-1
  • SHA-256
  • AES
  • DES
  • MARC4
  • HMAC
  • HMAC-MD5
  • HMAC-SHA1
  • HMAC-SHA256
  • PBKDF2

如果安全问题,然后使用一个算法,一直没有断过(还),并且较少受以各种形式的攻击(维基百科在this article的底部有一个很好的分解)。

基于缺少对this question的答案,它似乎并不是本机浏览器的功能。我希望有,但我可以看到依靠浏览器产生的问题。例如,如果在算法中发现缺陷,那么在您知道所有浏览器都支持它(并且已升级)之前,很难将用户转到新算法。如果您控制散列算法,那么您可以随时部署一个新脚本。

3

我不确定内置哈希实现,而不是已经用于关联数组的内容,但下面是一些带代码的示例实现。

SHA

MD5(也具有其它某些附带)

+0

我还发现[Mootool的版本](https://github.com/sixtyseconds/mootools-string-cryptography/blob/master/Source/String.SHA-1.js)和[this gist](https:// gist .github.com/712736)。 – Xeoncross 2012-03-09 17:59:56