问题标签 [string-hashing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 哈希分布,为什么 0 总是权重很大?
我写了一个快速的画布可视化来查看我从 C++ 移植到 JavaScript 的散列算法的分布。
我看到奇怪的行为,无论我如何修改哈希值,0 都存在严重偏差,因为它的选择频率是哈希函数中大多数其他数字的两倍。
您可以在以下位置查看演示:http: //jsfiddle.net/x5L73/2/
和原始的 C++ 算法:http ://www.azillionmonkeys.com/qed/hash.html
我所指的代码部分位于 jsFiddle 的底部:
对我来说奇怪的是,它为零的频率是任何hash
其他值的两倍,无论我选择什么来修改它。在此示例中,它是零次,而任何其他数字都是命中次数。这是通过蛮力测试确定的:1/3499
1/6998
我在这里想念什么???
c++ - C++:关于字符串顺序无关的字符串序列的哈希函数的建议
假设你有这两个字符串序列
abc cba bc
bc abc cba
我正在尝试为此类序列创建一个映射(该序列也是一个字符串),以便将上述两个序列映射到同一个存储桶中。
我最初的想法是添加分别应用于每个字符串的散列函数的结果。这样他们的顺序就无关紧要了。如果我将散列函数作为一个整体应用于序列字符串,那么散列结果当然会有所不同。
但是,我对字符串散列函数的世界非常陌生,我不知道这种方法是否有效。
在这个网站http://www.partow.net/programming/hashfunctions/index.html
我发现了许多不同的字符串散列实现,但是我不确定哪一个最适合我的需求。
关于序列中每个字符串的一些技术细节是每个字符串不超过 25 个字符。此外,每个序列不会有超过 3 个字符串。
问题
1.
这种将字符串散列函数的结果添加到序列的每个字符串的方法是否有效?
2.
如果是的话,我应该使用哪个字符串散列函数会产生少量的冲突并且还可以节省时间?
先感谢您
c++ - 我如何编写用于字符串的双哈希实现?
大家好,第一次来这里,但我想首先问一下我对双散列的理解是否正确。
双散列首先实现一个散列函数,然后检查该点是否打开。如果当前点未打开,则使用第二个散列函数确定另一个点,然后将其乘以当前尝试,然后将其添加到由第一个散列算法确定的索引点。
我现在的代码是:
我刚刚意识到我没有包含我的第二个哈希函数
它可能看起来不像,但实际上 tsize 被正确调用。
php - 安全散列方法
在 MVC 样式的 Web 应用程序中,设置全局可用的散列方法的最佳/最安全的方法是什么?
我刚刚在我的核心控制器中执行此操作,该控制器由我的其余脚手架扩展:
这是一种好的做法,还是我应该做一些不同的事情?
javascript - Javascript 哈希算法
我正在尝试学习如何在 Javascript 中进行一些基本的哈希处理,并且遇到了以下算法:
我真的不明白它是如何工作的,我希望你能帮助我。特别是我不明白(hash<<5)-hash
和hash = hash & hash
。谢谢您的回复。
注意:对于寻找源代码的任何人,它都是 Java 的 String.hashCode() 的实现: http ://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method
php - 如何在 PHP 5.5 中使用 password_needs_rehash 函数
我的数据库中有一组密码,我之前使用 sha512 进行了散列,现在我已经将服务器升级到 PHP 5.5,我想使用 bcrypt 密码散列。所以我的想法是让用户登录,然后调用这里描述的这个 password_needs_rehash 函数来检查密码,然后更新数据库中的密码哈希:
http://php.net/manual/en/function.password-needs-rehash.php
我不确定如何使用这个函数,这里没有列出示例,也没有真正阐明选项数组的用途。我是否只需要像这样调用 password_needs_rehash 函数:
ios - 客户端/服务器应用程序的散列用户密码
我有一个与 Web 服务器通信的 iPhone 应用程序。启动应用程序时,用户必须使用用户名和密码进行身份验证。应用程序和网络服务器之间的通信是安全的(HTTPS),但我不想向网络服务器发送明文密码,我只想发送密码的“签名”(签名将存储在Web 服务器上的数据库)。
在 IOS 上创建此“签名”的最佳解决方案是什么?我应该使用 MD5 还是其他?
我需要获取外部库来构建此签名还是可以使用 IOS SDK 中的 SecKeyEncrypt 来完成?
从长远来看,我将有一个在 Android 上运行的应用程序,并且我必须能够为 IOS 和 Android 生成相同的签名。
谢谢你的帮助,
塞巴斯蒂安。
c++ - std::hash_set 中定义的 stdext::hash_value() 的性能
首先,我想告诉你,我的总体/主要目标是使用它们的函数名称(字符串)作为参数来执行某些函数,我定义了一个函数如下:(我想为我生成的每个字符串数据生成一个唯一的数字作为函数的参数插入)
这里我调用 Func_Execution 函数如下:
我想知道是否有任何有效的(考虑性能/耗时)和有效的机制来为某些字符串(字符模式)生成唯一的数值而不是使用 stdext::hash_value() 函数?(另请注意我想实现开关盒也是)
sql - 一次性用值(用户名)替换多个散列类型的密码
数据表:people_t
列:
询问:
我想将多个哈希类型的密码更改为用户名。命令之后,密码仍应经过哈希处理,但实际密码将是用户的用户名。例如
- 用户名:johndoe
- 密码哈希:iamjohn
会变成:
- 用户名:johndoe
- 密码哈希:johndoe
我正在尝试以下操作:
我什至需要 WHERE 子句还是我在这里做错了什么?
先谢谢各位了。
java - Java hashcode逆向计算
我试图String
通过添加一个新字符来测试哈希码的工作原理,然后反过来将它减去,但是当我进行计算时它没有给我正确的答案。
例如
我想知道我是否在上面的最后一步做正确的数学?溢出对计算不重要吗?