Questions tagged «hash»

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

4
什么时候在Python中hash(n)== n?
我一直在玩Python的hash函数。对于小整数,它hash(n) == n总是出现。但是,这不会扩展为大量: >>> hash(2**100) == 2**100 False 我并不感到惊讶,我知道哈希值取值范围有限。这个范围是多少? 我尝试使用二进制搜索来找到最小的数字hash(n) != n >>> import codejamhelpers # pip install codejamhelpers >>> help(codejamhelpers.binary_search) Help on function binary_search in module codejamhelpers.binary_search: binary_search(f, t) Given an increasing function :math:`f`, find the greatest non-negative integer :math:`n` such that :math:`f(n) \le t`. If :math:`f(n) > t` …

11
编译时间字符串哈希
我在几个不同的地方读到,使用C ++ 11的新字符串文字可能在编译时计算字符串的哈希值。但是,似乎没有人愿意提出来,说这将是可能的或如何实现的。 这可能吗? 操作员会是什么样子? 我对这样的用例特别感兴趣。 void foo( const std::string& value ) { switch( std::hash(value) ) { case "one"_hash: one(); break; case "two"_hash: two(); break; /*many more cases*/ default: other(); break; } } 注意:编译时哈希函数不必看起来像我写的那样。我尽力猜测最终的解决方案是什么样的,但meta_hash<"string"_meta>::value也可能是可行的解决方案。

1
有关生成OAuth令牌的最佳做法?
我意识到OAuth规范并未指定关于ConsumerKey,ConsumerSecret,AccessToken,RequestToken,TokenSecret或Verifier代码的来源的任何信息,但是我很好奇是否存在创建显着安全的令牌(尤其是Token /秘密组合)。 如我所见,有几种创建令牌的方法: 只需使用随机字节,存储在与使用者/用户关联的数据库中 散列一些特定于用户/消费者的数据,存储在与消费者/用户关联的数据库中 加密用户/消费者特定的数据 (1)的优点是数据库是看起来最安全的信息的唯一来源。攻击要比(2)或(3)难。 散列实际数据(2)将允许从可能已经已知的数据中重新生成令牌。可能不会真正为(1)提供任何优势,因为无论如何都需要存储/查找。比(1)占用更多的CPU资源。 加密真实数据(3)将允许解密以了解信息。与(1)和(2)相比,这将需要较少的存储空间并可能需要更少的查找,但是安全性也可能较低。 还有其他应考虑的方法/优点/缺点吗? 编辑:另一个考虑是令牌中必须有某种随机值,因为必须存在过期和重新发行新令牌的能力,因此它不能仅由真实数据组成。 遵循问题: 是否有最小令牌长度才能显着地确保密码安全?据我了解,更长的令牌机密会创建更安全的签名。这种理解正确吗? 从散列的角度来看,使用特定编码相对于其他编码是否有优势?例如,我看到很多使用十六进制编码的API(例如GUID字符串)。在OAuth签名算法中,令牌用作字符串。如果使用十六进制字符串,则可用的字符集将比使用Base64编码的字符集小得多(更可预测)。在我看来,对于两个长度相等的字符串,具有较大字符集的字符串将具有更好/更广泛的哈希分布。在我看来,这将提高安全性。这个假设正确吗? OAuth规范在11.10秘密熵中提出了这个问题。


1
哈希火箭已弃用吗?
引文广为人知的RIP Hash火箭帖子似乎暗示,:foo => "bar"不赞成使用Hash Rocket语法()来支持新的Ruby JSON样式的hash(foo: "bar"),但是我找不到任何明确的引用来说明Hash Rocket表单从Ruby 1.9开始实际上已弃用/不建议使用。

10
隐藏盐以进行哈希处理的必要性
在工作中,我们有两种相互竞争的盐理论。我从事的产品使用诸如用户名或电话号码之类的东西来加杂凑。从本质上讲,每个用户都有所不同,但我们可以随时使用。其他产品会为每个用户随机生成一个盐,并在用户每次更改密码时都会更改它。然后将盐在数据库中加密。 我的问题是第二种方法是否真的必要?从纯粹的理论角度我可以理解,它比第一种方法更安全,但是从实用性角度来看又如何呢?现在要对用户进行身份验证,必须对salt进行加密,并将其应用于登录信息。 在考虑之后,我只是看不到这种方法真正的安全性收益。即使在攻击者知道如何快速确定每个帐户的含义的情况下,一个帐户一个帐户地更改盐,仍然使某人尝试强行使用哈希算法仍然非常困难。假设密码足够强。(显然,找到一组均为两位数字的密码,正确的哈希值要比找到正确的8位密码的哈希值容易得多)。我的逻辑是否正确,或者我缺少什么? 编辑:好的,这就是为什么我认为加密盐真的没有意义。(让我知道自己是否走对了路)。 对于以下说明,我们假设密码始终为8个字符,salt为5,并且所有密码均由小写字母组成(这使数学更容易了)。 每个条目具有不同的盐值意味着我不能使用相同的彩虹表(实际上,如果我有一个足够大的表,我可以使用,但是暂时暂时忽略它)。从我的理解中,这是盐的真正关键,因为要破解每个帐户,我都必须重新发明轮子,以便为每个帐户说话。现在,如果我知道如何对密码应用正确的盐来生成哈希,我会这样做,因为盐实际上只是在扩展哈希短语的长度/复杂度。因此,我将减少生成“知道”密码(从13 ^ 26到8 ^ 26的密码)所需的可能组合的数量,因为我知道盐是什么。现在,它变得更容易,但仍然非常困难。 因此就加密了盐。如果我知道盐是加密的,那么我不会尝试对其进行解密(假设我知道它具有足够的加密级别)。我会忽略它。回到上一个示例,而不是试图弄清楚如何解密它,我只会生成一个更大的Rainbow表,其中包含13 ^ 26的所有密钥。不知道加盐肯定会使我慢下来,但是我认为这不会增加尝试先破解加盐加密的艰巨任务。这就是为什么我认为这不值得。有什么想法吗? 以下是描述在暴力攻击下密码将保留多长时间的链接:http : //www.lockdown.co.uk/? pg=combi

2
清理用户密码
在对它们提供哈希值并将其存储在数据库中之前,应如何转义或清除用户提供的密码? 当PHP开发人员出于安全目的考虑对用户密码进行哈希处理时,他们通常会像对待其他任何用户提供的数据一样考虑这些密码。这个主题经常出现在与密码存储有关的PHP问题中。开发人员通常希望在散列密码并将其存储在数据库中之前使用诸如escape_string()(在各种迭代中)htmlspecialchars(),addslashes()和等功能清除密码。
98 php  sql  pdo  hash 

6
用Python哈希文件
我想让python读取EOF,这样我就可以获取适当的哈希,无论它是sha1还是md5。请帮忙。这是我到目前为止的内容: import hashlib inputFile = raw_input("Enter the name of the file:") openedFile = open(inputFile) readFile = openedFile.read() md5Hash = hashlib.md5(readFile) md5Hashed = md5Hash.hexdigest() sha1Hash = hashlib.sha1(readFile) sha1Hashed = sha1Hash.hexdigest() print "File Name: %s" % inputFile print "MD5: %r" % md5Hashed print "SHA1: %r" % sha1Hashed
98 python  hash  md5  sha1  hashlib 

11
如何创建Laravel哈希密码
我正在尝试为Laravel创建哈希密码。现在有人告诉我使用Laravel哈希帮助器,但我似乎找不到它,或者我的方向错误。 如何创建laravel哈希密码?在哪 编辑:我知道代码是什么,但我不知道在哪里以及如何使用它,因此它给了我哈希密码。如果得到哈希密码,则可以手动将其插入数据库

1
为什么tuple(set([(1,“ a”,“ b”,“ c”,“ z”,“ f”]))==元组(set([(a,b,c) “ z”,“ f”,1]))85%的时间启用了哈希随机化?
鉴于零比雷埃夫斯对另一个问题的回答,我们认为 x = tuple(set([1, "a", "b", "c", "z", "f"])) y = tuple(set(["a", "b", "c", "z", "f", 1])) print(x == y) True在启用散列随机化的情况下,大约打印时间的85%。为什么是85%?

8
在Python中加盐并哈希密码
该代码应该用盐来散列密码。盐和哈希密码将保存在数据库中。密码本身不是。 鉴于该操作的敏感性,我想确保所有内容都是洁净的。 import hashlib import base64 import uuid password = 'test_password' salt = base64.urlsafe_b64encode(uuid.uuid4().bytes) t_sha = hashlib.sha512() t_sha.update(password+salt) hashed_password = base64.urlsafe_b64encode(t_sha.digest())

3
Python 3.3中的哈希函数在会话之间返回不同的结果
我已经在python 3.3中实现了BloomFilter,并且每次会话都得到不同的结果。深入研究这种奇怪的行为,使我进入了内部hash()函数-它在每个会话中为同一字符串返回不同的哈希值。 例: >>> hash("235") -310569535015251310 -----打开一个新的python控制台----- >>> hash("235") -1900164331622581997 为什么会这样呢?为什么这有用?

16
如何从哈希中提取子哈希?
我有一个哈希: h1 = {:a => :A, :b => :B, :c => :C, :d => :D} 提取像这样的子哈希的最佳方法是什么? h1.extract_subhash(:b, :d, :e, :f) # => {:b => :B, :d => :D} h1 #=> {:a => :A, :c => :C}
95 ruby  hash 


4
如何在Perl中结合散列?
将两个哈希值合并到%hash1的最佳方法是什么?我一直都知道%hash2和%hash1总是有唯一的键。如果可能的话,我也希望使用一行代码。 $hash1{'1'} = 'red'; $hash1{'2'} = 'blue'; $hash2{'3'} = 'green'; $hash2{'4'} = 'yellow';
95 perl  dictionary  hash  merge 

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.