我正在看哈希算法,但找不到答案.
谢谢..
更新:
我想澄清一点,我理解散列和加密之间的区别.是什么促使我这样问这个问题的是这篇文章,作者将bcrypt称为"自适应散列"
由于bcrypt基于Blowfish,因此我认为Blowfish是一种哈希算法.如果它的答案已经指出加密,那么在我看来它应该不会在本文中占有一席之地.更糟糕的是,他总结说bcrypt是最好的.现在让我感到困惑的是phpass类(我相信用于密码哈希)使用bcrypt(即河豚,即加密).根据这些新信息,你们告诉我(河豚是加密),这个类听起来不对.我错过了什么吗?
我在理解盐密封的目的时遇到了一些麻烦.据我所知,主要用途是阻碍彩虹表攻击.但是,我看到实现这一点的方法似乎并没有真正解决问题.
我见过许多教程,建议将盐用作以下内容:
$hash = md5($salt.$password)
Run Code Online (Sandbox Code Playgroud)
原因是哈希现在不映射到原始密码,而是密码和盐的组合.但是说$salt=foo和$password=bar和$hash=3858f62230ac3c915f300c664312c63f.现在有人用彩虹表可以反转哈希并提出输入"foobar".然后他们可以尝试所有密码组合(f,fo,foo,... oobar,obar,bar,ar,ar).获取密码可能需要几毫秒,但其他情况并不多.
我见过的其他用途是在我的linux系统上.在/ etc/shadow中,散列密码实际上与 salt一起存储.例如,"foo"的盐和"bar"的密码将散列到此:$1$foo$te5SBM.7C25fFDu6bIRbX1.如果一个黑客以某种方式能够得到这个文件,我不知道盐服务的目的是什么,因为te5SBM.7C25fFDu6bIRbX已知反向哈希包含"foo".
感谢任何人都可以解决这个问题.
编辑:谢谢你的帮助.为了总结我的理解,salt使得散列密码更加复杂,从而使得它更不可能存在于预先计算的彩虹表中.我之前误解的是,我假设所有哈希都存在彩虹表.
我希望得到一个迭代Ruby Hash的特定输出.
这是我想迭代的哈希:
hash = {
1 => ['a', 'b'],
2 => ['c'],
3 => ['d', 'e', 'f', 'g'],
4 => ['h']
}
Run Code Online (Sandbox Code Playgroud)
这是我想得到的输出:
1-----
a
b
2-----
c
3-----
d
e
f
g
4-----
h
Run Code Online (Sandbox Code Playgroud)
在Ruby中,如何使用Hash获得这样的输出?
假设我有一个字典,其中键映射到整数,如:
d = {'key1': 1,'key2': 14,'key3': 47}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是否有一种语法简约的方法来返回d-ie 62中的值的总和?
假设我们有十亿个独特的图像,每个图像一兆字节.我们计算每个文件内容的SHA-256哈希值.碰撞的可能性取决于:
假设它为零,我们可以在多大程度上忽略这种可能性?
我无法理解Range主键在这里 -
它是如何工作的?
"散列属性上的无序散列索引和范围属性上的排序范围索引"是什么意思?
我想创建一个哈希I love cupcakes(用密钥签名abcdeg)
如何使用Node.js加密创建该哈希?
我刚刚浏览了DavidHayden关于哈希用户密码的文章之一.
真的,我无法得到他想要实现的目标.
这是他的代码:
private static string CreateSalt(int size)
{
//Generate a cryptographic random number.
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[size];
rng.GetBytes(buff);
// Return a Base64 string representation of the random number.
return Convert.ToBase64String(buff);
}
private static string CreatePasswordHash(string pwd, string salt)
{
string saltAndPwd = String.Concat(pwd, salt);
string hashedPwd =
FormsAuthentication.HashPasswordForStoringInConfigFile(
saltAndPwd, "sha1");
return hashedPwd;
}
Run Code Online (Sandbox Code Playgroud)
有没有其他C#方法来散列密码并添加盐?
我有一个条件,我得到一个哈希
hash = {"_id"=>"4de7140772f8be03da000018", .....}
Run Code Online (Sandbox Code Playgroud)
我希望这个哈希为
hash = {"id"=>"4de7140772f8be03da000018", ......}
Run Code Online (Sandbox Code Playgroud)
PS:我不知道哈希中的键是什么,它们是随机的,每个键带有一个"_"前缀,我不想要下划线
Python中的一个基本数据结构是字典,它允许用户记录"键"以查找任何类型的"值".这在内部实现为哈希表吗?如果没有,那是什么?
hash ×10
dictionary ×2
passwords ×2
python ×2
ruby ×2
salt ×2
algorithm ×1
c# ×1
cryptography ×1
database ×1
encryption ×1
hashmap ×1
hashtable ×1
javascript ×1
node-crypto ×1
node.js ×1
nosql ×1
output ×1
primary-key ×1
rainbowtable ×1
security ×1
sha ×1
sum ×1