为什么openssl aes-128-ecb不会导致重复序列?

Joh*_*eej 2 openssl aes

我正在使用openssl来了解有关对称加密的更多信息.我读到ECB(电子密码本)模式不如CBC(密码块链接)那么安全的一个原因是由于在ECB模式下,密码(在这种情况下,aes-128)在128位加密时间,这可能导致出现相同的序列.例如,如果文件中多次出现"安全性"一词,并且它们恰好以128位序列对齐,则应出现重复序列.我试图在实际环境中看到这种效果,特别是使用openssl.

我输入的命令是:

openssl aes-128-ecb -a -in plain.txt -out cipher.txt
Run Code Online (Sandbox Code Playgroud)

plain.txt包含:0123456789abcdef0123456789abcdef

我使用的加密密码是"密码"(没有双引号).

cipher.txt包含:U2FsdGVkX18qCQ5SjLaVsLS8als/h5eJl69ATS3pD94x5kwkpmfNWauW/lUOZdeC 5a38fSS7mTUc7hT7XiXdIw ==

如果我正确理解了所有内容,则plain.txt中的每个字符应代表一个字节.16个字符= 128位.如您所见,我正在尝试将序列对齐为128位块以查看重复序列.

上面的逻辑出了什么问题?

Dav*_*rtz 8

您的命令行使用base64,salt和padding,所有这些都搞砸了.尝试:

openssl aes-128-ecb -in plain.text -out cipher.txt -nosalt -nopad
Run Code Online (Sandbox Code Playgroud)

你会发现它cipher.txt包含32个字节:

 83 d2 41 fb ca 6e 8a e3 3b 6e 55 ae 2c ac 62 af
 83 d2 41 fb ca 6e 8a e3 3b 6e 55 ae 2c ac 62 af
Run Code Online (Sandbox Code Playgroud)