2010-07-18 98 views
3

我的php脚本和我的c#应用程序会传递一个长度为32个字符的哈希字符串,对此最好的模式是什么?我认为欧洲央行,但我不确定,因为它说如果使用超过1块不使用。我怎么知道这个区块有多大?哪个加密模式ECB,CBC,CFB

他们偶尔会传递一个大的文本文件,这将是加密这个最好的模式... CBC?

任何好的有用的阅读欢迎...

感谢

+1

散列函数的选择取决于你想通过交换散列码来实现什么。请详细说明。 – 2010-07-18 14:40:01

+0

哈希是一个数字。它因为存储在数据库中的ID而散列的原因。我把它散列了,所以所有的ID都有相同的长度。 – arbme 2010-07-18 14:52:10

+0

'我对它进行了散列处理,所以所有的ID都具有相同的长度......如果这是你在哈希中的唯一目的(我怀疑),那么你不会在乎散列的任何密码特性。问自己:而不是哈希,填充前导零的数字ID是否符合我的目的?此外,当您提到大文本文件的加密时,似乎还有第二个用于哈希的目的。 (顺便说一句,对于大型文本文件,CBC当然是EBC的扣篮)。 – mjv 2010-07-18 16:01:38

回答

1

欧洲央行真的不推荐(这是不是很安全的,因为其他模式)最简单的模式和。

我个人会使用CBC。

2

ECB的一个问题(在许多其他问题中)是它确定性地加密。这是每次你加密相同的ID,你会得到相同的密文。因此这种模式不会阻止流量分析。攻击者可能无法获知已加密的ID。但是,他仍然可以确定发送相同ID的时间和频率。

正确使用CBC和OFB时,每次加密都使用新的随机IV,因此每次都以不同的方式加密相同的ID。由于您还要确保所有ID具有相同的长度,因此结果应为密文,攻击者无法将重复ID与非重复ID区分开来。

1

除了Accipitridae的答案。您需要将IV提供给解密过程。在CBC或OFB的情况下,这也将是开销。