2013-07-15 78 views
0

在Delphi XE2,與TurboPower公司加密箱-3,I使用以下代碼來加密的字符串:如何在加密字符串時始終使用相同的設置獲得相同的結果?

Codec1.EncryptString('AText', Encrypted); 

密碼是[AES-192],ChainMode是PCBC

但是,每次使用相同的設置加密相同的字符串時,這會產生不同的結果。
我怎樣才能始終使用相同的設置獲得相同的結果字符串? (密碼,密碼,ChainMode等)。

回答

4

使用CBC模式,你是假設每次調用加密函數時都會得到不同的密文,即使是相同的明文。該屬性可防範某些類型的攻擊,這也是CBC比ECB更安全的原因之一。如果你仍然想這麼做(如果你真的知道你在做什麼,你應該只做它),你應該每次都使用相同的初始化矢量(IV)。但如前所述,這可能會危及系統的安全。

我不熟悉你的平臺,所以我不知道如何在你的情況下做到這一點。

+0

@ntoskml是正確的。 LB3代表客戶端自動創建一個隨機IV,並將其預先輸出到輸出消息。每次有不同的密文消息是正常的,正確的和合意的。 –

相關問題