可能重复:
Generate a Hash from string in Javascript/jQuery
有没有人能建议一个用(浏览器兼容的) JavaScript编写的简单的(即几十行代码,而不是几百行)哈希函数?理想情况下,我希望当传递一个字符串作为输入时,产生类似于32个字符的十六进制字符串的东西,这是MD5,SHA1等的典型输出。它不必是密码安全的,只需合理地抵抗冲突。(我最初的用例是URL,但将来我可能希望在其他字符串上使用它。)
发布于 2012-01-12 16:22:55
我自己没有验证过这一点,但你可以看看这个JavaScript implementation of Java's String.hashCode() method。看起来相当短小。
使用此原型,您可以简单地对任何字符串调用.hashCode()
,例如"some string".hashCode()
,并获得一个数值哈希码(更具体地说,是
等效码),如1395333309。
String.prototype.hashCode = function() {
var hash = 0;
if (this.length == 0) {
return hash;
}
for (var i = 0; i < this.length; i++) {
var char = this.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
发布于 2011-05-25 18:08:40
有许多用JS编写的散列函数的实现。例如:
http://www.webtoolkit.info/javascript-sha1.html
:
如果你不需要安全性,你也可以使用base64,它不是散列函数,没有固定的输出,可以由用户简单地解码,但看起来更轻量级,可以用于隐藏值:http://www.webtoolkit.info/javascript-base64.html
发布于 2011-05-25 18:06:59
查看这些实现
https://stackoverflow.com/questions/6122571
复制相似问题