Questions tagged «hash»

哈希函数是任何定义明确的过程或数学函数,可以将大量数据转换为小的数据,通常是单个整数。对于用于标记社交媒体内容的主题标签的问题,请使用主题标签。对于有关URL和HTML锚点的问题,请使用片段标识符。对于有关Ruby的哈希类型的问题,请使用ruby-hash。

7
是否有任何通常被认为可信赖的SHA-256 javascript实现?
我正在为论坛编写登录名,并且需要先在javascript中对密码客户端进行哈希处理,然后再将其发送到服务器。我在弄清楚我可以信任的SHA-256实现方面遇到了麻烦。我期望每个人都可以使用某种权威的脚本,但是我发现许多不同的项目都有自己的实现。 我意识到使用他人的加密货币始终是信念的飞跃,除非您有资格自己审查它,并且没有“信任”的通用定义,但这似乎很普遍且重要,应该有某种意义关于使用什么的共识。我只是天真吗? 编辑,因为注释中包含很多内容:是的,我们在服务器端再次进行了更严格的哈希处理。客户端哈希不是我们保存在数据库中的最终结果。客户端哈希是因为人类客户端请求它。他们没有给出具体的原因,也许他们只是喜欢过度杀伤。
95 hash  javascript  sha256  sha2 

15
Linux:为给定的文件夹和内容计算单个哈希?
当然,必须有一种方法可以轻松地做到这一点! 我已经尝试了Linux命令行应用程序,例如sha1sum和,md5sum但是它们似乎只能计算单个文件的哈希值并输出哈希值列表,每个文件一个哈希值。 我需要为文件夹的整个内容生成一个哈希(不仅仅是文件名)。 我想做类似的事情 sha1sum /folder/of/stuff > singlehashvalue 编辑:澄清一下,我的文件在目录树中处于多个级别,它们并不都位于同一根文件夹中。
95 linux  bash  hash 


3
开放式哈希和封闭式哈希的含义
公开哈希(单独链接): 在开放式哈希中,键存储在附加到哈希表单元格的链接列表中。 封闭式散列(开放式寻址): 在封闭式哈希中,所有键都存储在哈希表本身中,而无需使用链接列表。 我无法理解为什么将它们称为“打开”,“关闭”和“分开”。有人可以解释吗?
94 hash 

2
升压魔术数字:: hash_combine
所述boost::hash_combine模板函数采用一个散列(称为参考seed)和对象v。根据文档,它结合seed了vby 的哈希 seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); 我可以看到这是确定性的。我明白了为什么要使用异或。 我敢打赌,这种加法有助于将相似的值广泛地映射,因此探测哈希表不会崩溃,但是有人可以解释魔术常数是什么吗?

4
相当于Python字典的Java
我是Python的长期用户,并且非常喜欢使用字典的方式。它们非常直观且易于使用。有没有一个与python字典等效的Java?我听说有人在使用哈希图和哈希表。有人可以解释使用哈希表和哈希图与python字典的异同吗?
93 java  python  hash  dictionary 



3
如何用河豚哈希长密码(> 72个字符)
上周,我读了很多有关密码哈希的文章,而Blowfish似乎是目前最好的哈希算法之一(但其中之一),但这不是这个问题的主题! 最多72个字符 河豚只考虑输入的密码中的前72个字符: <?php $password = "Wow. This is a super secret and super, super long password. Let's add some special ch4r4ct3rs a#d everything is fine :)"; $hash = password_hash($password, PASSWORD_BCRYPT); var_dump($password); $input = substr($password, 0, 72); var_dump($input); var_dump(password_verify($input, $hash)); ?> 输出为: string(119) "Wow. This is a super secret and …

16
MD5哈希值为何不可逆?
我一直想知道的一个概念是使用加密哈希函数和值。我知道这些函数可以生成唯一且几乎无法逆转的哈希值,但这是我一直想知道的: 如果在服务器上,则在PHP中产生: md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e" 通过MD5函数运行相同的字符串时,在PHP安装中会得到相同的结果。一个过程正在被用来从某个初始值中产生一些价值。 这是否意味着有某种方法可以解构正在发生的事情并反转哈希值? 这些函数使生成的字符串无法回溯是什么原因?

4
Rails将哈希数组映射到单个哈希
我有这样一个哈希数组: [{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}] 我正在尝试将此映射到单个哈希,如下所示: {"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"} 我已经实现了 par={} mitem["params"].each { |h| h.each {|k,v| par[k]=v} } 但是我想知道是否有可能以更惯用的方式进行此操作(最好不使用局部变量)。 我怎样才能做到这一点?


7
C#中的哈希字符串
尝试在中获取哈希字符串时遇到问题c#。 我已经尝试过一些网站,但是大多数网站都使用文件来获取哈希值。其他用于字符串的有点太复杂。我找到了用于Windows的Web身份验证示例,如下所示: FormsAuthentication.HashPasswordForStoringInConfigFile(tbxPassword.Text.Trim(), "md5") 我需要使用散列来使包含文件名的字符串更安全。我怎样才能做到这一点? 例: string file = "username"; string hash = ??????(username); 我应该使用其他哈希算法而不是“ md5”吗?
90 c#  string  hash 

5
为什么Python字典可以具有相同散列的多个键?
我想了解幕后的Pythonhash函数。我创建了一个自定义类,其中所有实例都返回相同的哈希值。 class C: def __hash__(self): return 42 我只是假设上述类的一个实例随时都可以位于中dict,但是实际上adict可以具有相同散列的多个元素。 c, d = C(), C() x = {c: 'c', d: 'd'} print(x) # {<__main__.C object at 0x7f0824087b80>: 'c', <__main__.C object at 0x7f0823ae2d60>: 'd'} # note that the dict has 2 elements 我进行了更多的实验,发现如果我重写该__eq__方法以使该类的所有实例都相等,则dict仅允许一个实例。 class D: def __hash__(self): return 42 def __eq__(self, other): return …

9
密码哈希的非随机盐
更新:我最近从这个问题中学到,在下面的整个讨论中,我(而且我相信其他人也这样做)有点令人困惑:我一直称其为Rainbow表的实际上是一个哈希表。彩虹桌是更复杂的生物,实际上是Hellman哈希链的变体。尽管我相信答案仍然是相同的(因为它不能归结为密码分析),但其中的某些讨论可能有些偏斜。 问题是:“ 什么是彩虹桌?如何使用它们? ” 通常,我总是建议使用加密强度高的随机值作为盐,与哈希函数(例如,密码)配合使用,例如,防止Rainbow Table攻击。 但是,实际上在密码学上盐必须是随机的吗?在这方面,任何唯一值(每个用户唯一,例如userId)是否足够?实际上,这将防止使用单个Rainbow Table破解系统中的所有(或大多数)密码... 但是缺乏熵真的会削弱哈希函数的加密强度吗? 注意,我不是在问为什么使用盐,如何保护它(不需要),使用单个常量哈希(不要)或要使用哪种哈希函数。 只是盐是否需要熵。 到目前为止,感谢所有人提供的答案,但我想重点介绍一下我不太熟悉的领域。对密码分析的主要影响-如果有人从密码数学PoV中获得一些输入,我将不胜感激。 另外,如果还没有考虑其他向量,那也是很好的输入(请参阅多个系统上的@Dave Sherohman点)。 除此之外,如果您有任何理论,想法或最佳实践,请提供证明,攻击场景或经验证据作为支持。甚至是可以接受折衷的合理考虑...我对这个问题的最佳实践(B资本P大写)很熟悉,我想证明这实际上提供了什么价值。 编辑:这里有一些非常好的答案,但是我认为正如@Dave所说的,归结于Rainbow Tables的常见用户名...以及可能不太常见的名称。但是,如果我的用户名是全局唯一的怎么办?对于我的系统而言,不一定是唯一的,但对于每个用户而言,例如,电子邮件地址。 没有动力为单个用户建立RT(正如@Dave所强调的那样,salt不会保密),并且这仍然可以防止群集。唯一的问题是,我在不同的站点上可能拥有相同的电子邮件和密码-但无论如何,萨尔特不会阻止它。 因此,可以归结为密码分析-是否需要熵?(我目前的想法是,从密码分析的角度来看这不是必需的,但是从其他实际原因出发。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.