我一直在尝试在PHP中为CBC实现Ciphertext Stealing(CTS)。
在下面引用两个链接
如何在PHP中使用AES CBC + CTS(密文窃取)模式加密/解密数据?
和
http://en.wikipedia.org/wiki/Ciphertext_stealing
我对XOR的最后一步和最简单的步骤感到困惑和困惑。我知道这很愚蠢,但是尝试了所有组合之后,我不知道我在想什么。代码如下。
// 1. Decrypt the second to last ciphertext block, using zeros as IV.       
$second_to_last_cipher_block = substr($cipher_text, strlen($cipher_text) - 32, 16);     
$second_to_last_plain = @mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $second_to_last_cipher_block, MCRYPT_MODE_CBC);
// 2. Pad the ciphertext to the nearest multiple of the block size using the last B-M 
//    bits of block cipher decryption of the second-to-last ciphertext block.
$n = 16 - (strlen($cipher_text) % 16);
$cipher_text .= substr($second_to_last_plain, -$n);
// 3. Swap the last …我的Delphi应用程序使用TurboPower LockBox 3使用AES 256加密明文信息.我现在想用PHP解密这些信息.但TurboPower LockBox 3存在一些互操作性问题.
有关详细信息,请查看LockBox 3作者的帖子:
http://lockbox.seanbdurkin.id.au/tiki-view_forum_thread.php?comments_parentId=363&topics_offset=1
和Stackoverflow上的类似帖子
在LockBox 3中,在加密期间,您设置密码.然后将此密码用作种子以生成密钥和iv.那么有没有人能够模仿PHP方面的密钥生成方法?或者有什么方法可以让LockBox 3生成Key/IV并将其放入我的PHP代码中以便解密文件?