我要加密使用的Rijndael-256(文字已经被压缩而在此之前转换为base64)文本长的段落。
这是非常不可能两个是相同的。 但是,如果他们碰巧是,将添加一个随机密钥到文本的开始或结束其固定(无论它们是否是相同的),万一用户写同样的文字吗?
如果我要确保没有结果是100%相同,欧洲央行是安全的,如果你不会得到重复的结果?
或者是这样的:(使用Base64 ......不准确,只是一个例子)
_Hello world_ = ahjkIOn25o
_To echo "Hello world,"_ = qw90klnN2_ahjkIOn25o_kL3
_Hello world is the_ = _ahjkIOn25o_hjAB27
所以,如果有人他们的文本中短语隐藏的,它总是输出相同ECB那块,无论是在文字还有什么,还是那句话的文本中的位置?
我会建议使用像CBC。 所有你需要做的就是增加IV。
所以,如果有人他们的文本中短语隐藏的,它总是输出相同ECB那块,无论是在文字还有什么,还是那句话的文本中的位置?
两个完全相同的明文块将成为完全相同的密文块。
因此,它取决于隐藏的短语是多久以及它如何定位块的内部。 只有当块的全部内容是一样的,其结果将是相同的。
我会说这是更适用于两种情况:
- 你有大量的结构化数据的(如实施例的图像或视频)
- 您可以使用相同的密钥来加密多个消息(这相当于大量的数据)。
无论这种情况下,可能允许攻击者找出一些关于你的内部结构。
我建议看看这个: http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29这显示了欧洲央行的问题。
一般来说,它更容易使用另一种模式,而不是
- 围绕欧洲央行的弱点工作
- 担心你是否考虑到所有可能的情况。