【问题标题】:How come openssl aes-128-ecb doesn't result in repeated sequences?为什么 openssl aes-128-ecb 不会导致重复序列?
【发布时间】:2011-12-06 03:12:13
【问题描述】:

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

我输入的命令是:

openssl aes-128-ecb -a -in plain.txt -out cipher.txt

plain.txt 包含: 0123456789abcdef0123456789abcdef

我使用的加密密码是“password”(不带双引号)。

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

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

上面的逻辑有什么问题?

【问题讨论】:

    标签: openssl aes


    【解决方案1】:

    您的命令行使用 base64、salt 和填充,所有这些都搞砸了。试试:

    openssl aes-128-ecb -in plain.text -out cipher.txt -nosalt -nopad
    

    你会发现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
    

    【讨论】:

      猜你喜欢
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多