首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript的简单(不安全)哈希函数?

JavaScript的简单(不安全)哈希函数?
EN

Stack Overflow用户
提问于 2011-05-25 17:55:24
回答 6查看 209.2K关注 0票数 164

可能重复:

Generate a Hash from string in Javascript/jQuery

有没有人能建议一个用(浏览器兼容的) JavaScript编写的简单的(即几十行代码,而不是几百行)哈希函数?理想情况下,我希望当传递一个字符串作为输入时,产生类似于32个字符的十六进制字符串的东西,这是MD5,SHA1等的典型输出。它不必是密码安全的,只需合理地抵抗冲突。(我最初的用例是URL,但将来我可能希望在其他字符串上使用它。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-01-12 16:22:55

我自己没有验证过这一点,但你可以看看这个JavaScript implementation of Java's String.hashCode() method。看起来相当短小。

使用此原型,您可以简单地对任何字符串调用.hashCode(),例如"some string".hashCode(),并获得一个数值哈希码(更具体地说,是

等效码),如1395333309。

代码语言:javascript
复制
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;
}
票数 174
EN

Stack Overflow用户

发布于 2011-05-25 18:08:40

有许多用JS编写的散列函数的实现。例如:

http://www.webtoolkit.info/javascript-sha1.html

  • SHA-1

如果你不需要安全性,你也可以使用base64,它不是散列函数,没有固定的输出,可以由用户简单地解码,但看起来更轻量级,可以用于隐藏值:http://www.webtoolkit.info/javascript-base64.html

票数 14
EN

Stack Overflow用户

发布于 2011-05-25 18:06:59

查看这些实现

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6122571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档