Questions tagged «hash»

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

14
保护PHP密码的哈希和盐值
当前据说MD5部分不安全。考虑到这一点,我想知道使用哪种机制进行密码保护。 这个问题,“双重哈希”密码是否比仅哈希一次密码安全? 建议多次散列可能是一个好主意,而如何对单个文件实施密码保护?建议使用盐。 我正在使用PHP。我想要一个安全,快速的密码加密系统。将密码哈希一百万次可能更安全,但也更慢。如何在速度和安全性之间取得良好的平衡?另外,我希望结果具有恒定数量的字符。 哈希机制必须在PHP中可用 一定要安全 它可以使用盐(在这种情况下,所有盐都一样好吗?是否有任何方法可以生成优质盐?) 另外,我是否应该在数据库中存储两个字段(例如,一个使用MD5,另一个使用SHA)?它会使它更安全或更不安全吗? 如果我不够清楚,我想知道要使用哪个哈希函数以及如何选择合适的盐,以便拥有安全快速的密码保护机制。 尚未完全涵盖我的问题的相关问题: PHP 简单密码加密中的SHA和MD5之间有什么区别简单的密码加密 存储asp.net的密钥和密码的安全方法 您将如何在Tomcat 5.5中实现盐腌密码


4
bcrypt如何内置盐?
Coda Hale的文章“如何安全存储密码”声称: bcrypt具有内置的盐,可以防止彩虹表攻击。 他引用了这篇论文,该论文说在OpenBSD的实现中bcrypt: OpenBSD从arcfour(arc4random(3))密钥流生成128位bcrypt盐,该密钥流以内核从设备时序收集的随机数据作为种子。 我不知道这怎么工作。在我的盐概念中: 每个存储的密码都需要不同,因此必须为每个密码生成一个单独的彩虹表 它需要存储在某个地方以便可重复:当用户尝试登录时,我们尝试输入密码,重复与最初存储密码时相同的盐和哈希程序,然后进行比较 当我将Devise(Rails登录管理器)与bcrypt一起使用时,数据库中没有salt列,因此感到困惑。如果盐是随机的并且没有存储在任何地方,我们如何可靠地重复哈希过程? 简而言之,bcrypt如何内置盐?


12
散列和加密算法之间的根本区别
我看到散列和加密算法之间有很多混淆,我想听听一些有关以下方面的专家建议: 何时使用散列与加密 是什么使哈希算法或加密算法与理论/数学水平不同(即,使哈希值不可逆(无需借助彩虹树)) 这里有一些类似的 SO问题,没有像我想要的那样详细: 混淆,哈希和加密之间有什么区别? 加密和哈希之间的区别

14
哈希表如何工作?
我正在寻找有关哈希表如何工作的解释-用朴素的英语代表像我这样的简单人! 例如,我知道它需要键,计算哈希值(我正在寻找一种解释方式),然后执行某种模运算以求出它在存储值的数组中的位置,但是这就是我的知识所在。 谁能澄清这个过程? 编辑:我不是专门询问哈希码的计算方式,而是关于哈希表工作原理的一般概述。

12
为什么Java的String中的hashCode()使用31作为乘数?
每Java文档中,哈希代码的String对象被计算为: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] 使用int算术,其中s[i]是 我字符串的个字符,n是字符串的长度,以及^表示取幂。 为什么将31用作乘数? 我知道乘数应该是一个相对较大的素数。那么为什么不29或37甚至97?
480 java  string  algorithm  hash 

12
HashSet与列表性能
显然,泛型HashSet<T>类的搜索性能高于泛型List<T>类。只需将基于哈希的键与线性方法进行比较即可List<T>。 但是,计算哈希键本身可能会花费一些CPU周期,因此对于少量项,线性搜索可以真正替代HashSet<T>。 我的问题:收支平衡在哪里? 为了简化场景(公平地说),我们假定List<T>类使用元素的Equals()方法来标识项目。

16
为什么哈希函数应使用质数模数?
很久以前,我花了1.25美元从讲价表上买了一本数据结构书。在其中,对散列函数的解释说,由于“数学的性质”,它最终应按质数进行模运算。 您对1.25美元的书有什么期待? 无论如何,我已经花了很多年考虑数学的本质,但仍然无法弄清楚。 即使存储桶数是素数,数字的分布确实真的更多吗?还是这是每个人都因为别人都接受而接受的古老程序员的故事?

6
计算文件的MD5校验和
我正在使用iTextSharp从PDF文件读取文本。但是,有时我无法提取文本,因为PDF文件仅包含图像。我每天都下载相同的PDF文件,我想看看PDF是否已被修改。如果无法获得文本和修改日期,则MD5校验和是判断文件是否已更改的最可靠方法吗? 如果是这样,将不胜感激一些代码示例,因为我在密码学方面没有太多经验。
334 c#  .net  hash  md5 

11
node.js哈希字符串?
我有一个要哈希的字符串。在node.js中生成哈希的最简单方法是什么? 哈希用于版本控制,而非安全性。
325 hash  node.js 

4
在数据库中存储Bcrypt哈希密码时应使用哪种列类型/长度?
我想在数据库中存储哈希密码(使用BCrypt)。什么是一个好的类型,哪个是正确的长度?用BCrypt散列的密码是否总是相同长度? 编辑 哈希示例: $2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu 在对一些密码进行哈希处理之后,BCrypt似乎总是生成60个字符的哈希。 编辑2 很抱歉没有提及实施。我正在使用jBCrypt。
317 mysql  hash  types  storage  bcrypt 


16
“双哈希”密码是否比仅哈希一次密码安全性低?
与仅对一次哈希进行哈希处理相比,对密码进行两次哈希存储之前或多或少的安全性高吗? 我在说的是这样做: $hashed_password = hash(hash($plaintext_password)); 不仅仅是这样: $hashed_password = hash($plaintext_password); 如果它的安全性较差,您能提供一个很好的解释(或一个链接)吗? 另外,使用的哈希函数是否有所不同?如果混合使用md5和sha1(例如)而不是重复相同的哈希函数,会有什么区别吗? 注意1:当我说“双重哈希”时,我说的是两次对密码进行哈希处理,以使密码更加模糊。我不是在谈论解决冲突的技术。 注意2:我知道我需要添加随机盐以确保其安全。问题是,使用相同算法进行两次哈希处理是否有助于或损害哈希。

2
使用自定义类类型作为键的C ++ unordered_map
我正在尝试使用自定义类作为的键unordered_map,如下所示: #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; class node; class Solution; class Node { public: int a; int b; int c; Node(){} Node(vector<int> v) { sort(v.begin(), v.end()); a = v[0]; b = v[1]; c = v[2]; } bool operator==(Node i) { if ( i.a==this->a && i.b==this->b &&i.c==this->c …

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.