给定两个不同的字符串S1和S2(S1!= S2)可能是:
SHA1(S1) == SHA1(S2)
Run Code Online (Sandbox Code Playgroud)
是真的?
我想要实现的目标是散列一些敏感的ID字符串(可能与其他字段(如父ID)连接在一起),这样我就可以使用散列值作为ID(例如在数据库中).
例:
Resource ID: X123
Parent ID: P123
Run Code Online (Sandbox Code Playgroud)
我不想公开我的资源标识的性质,以允许客户端看到"X123-P123".
相反,我想创建一个新的列散列("X123-P123"),让我们说它是AAAZZZ.然后客户端可以请求ID为AAAZZZ的资源,而不知道我的内部id等.
可能重复:
是否可以解密md5哈希值?
是否有可能扭转sha1?
我问了这个问题: 使用巨大的电子表格
得到了一个很好的答案,我遵循了建议.我用过这个:http: //splinter.com.au/blog/?p = 86
我在excel电子表格的列中散布了大约300,000个不同的元素
既然你可以这样做:
=SHA1HASH('The quick brown fox jumps over the lazy dog')
Run Code Online (Sandbox Code Playgroud)
你会回来的:
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Run Code Online (Sandbox Code Playgroud)
你也不能倒退吗?
我说如果它每次都以相同的方式加密同一文本,那有什么意义呢?
如果您确实知道哈希算法,是否可以倒退?
你能不能简单地向我解释哈希是如何工作的?如何将20gb转换为40个字符的哈希?是否需要很长时间来散列20gb的硬盘?
可能重复:
是否可以解密md5哈希?
我散列数据,ComputeHash如何从散列数据中学习原始数据?
private void btn_Hash_Click(object sender, EventArgs e)
{
HashAlgorithm ha = HashAlgorithm.Create();
Stream file = new FileStream(@"C:\temp\simetrik.txt", FileMode.Open, FileAccess.Read);
hashClass.hash = ha.ComputeHash(file);
listBox1.Items.Add(BitConverter.ToString(hashClass.hash));
}
Run Code Online (Sandbox Code Playgroud) cryptography ×2
hash ×2
.net ×1
algorithm ×1
c# ×1
checksum ×1
encryption ×1
security ×1
sha1 ×1