我在使用AES_128的Sql Server中测试加密。当我加密相同的文本(4111111111111111)时,加密的二进制数据每次都不相同。SQL Server 2008 R2中的AES是否需要初始化向量?
因为每次我需要使用初始化向量(IV),加密的数据是不同的?我的理解是,IV是用来防止重复的加密文本,以防止识别哪些值是相同的。
AES(CBC,CTR)的块链接方面是否创建了这些不同的加密值?
这里是一个例子。这些加密的相同的值(4111111111111111)的结果的三倍:
0x00AC935A664E3C4D97DD1F4A5E316333010000003D6FAE7E02787F52BC5D08BFE9E728E39DFA6CE4FAE2CDCD29D22BB8BEFF3FE9D9A02E7235558BEB11A41C218601B4DE
0x00AC935A664E3C4D97DD1F4A5E31633301000000EDB2D01D6A4DD46241AA616CF74FC41A148EAE6B42E47F3B902F5A04D0021EC34FBE08D634A4C234540565BFB68CD578
0x00AC935A664E3C4D97DD1F4A5E31633301000000D9671BB79C344B0835BB0DCB2FDD58A9AF05095B5ECE0C27077C7A57242674D92D9E1233B1ED1AAA007655F8D53A3DC8
由于IV的目的是从相同的文本字符串中创建不同的密文,所以当该字符串被多次加密时,我的猜测是这里已经使用了IV。 – 2012-07-23 18:15:59
在我看来,密文已经处于某种格式,因为前三十个字节在所有三个结果中都是相同的,并且最终大小与输出大小应该是不一致的(没有任何附加数据,您输出大小应该是16个字节)。如果可以的话,就如何进行格式化进行一些研究。 – strangefreeworld 2012-07-23 20:01:40