混淆`const_DES_cblock输入`

时间:2018-03-11 23:05:59

标签: c openssl

为什么/* This is the collapsible region of comment */ 最多只能接受8个字母。例如,

const_DES_cblock input

第一行加密和解密就好了。但第二个只加密和解密前8个字母。它的方法是什么?

2 个答案:

答案 0 :(得分:3)

DES就是所谓的分组密码,这意味着明文和加密文本都是固定长度的数据块。在DES的情况下,该数据块大小恰好是64位,因此const_DES_cblock is definedtypedef unsigned char const_DES_cblock[8];。如果您想安全地加密大于块大小的数据,则必须实现mode of operation,但这已经包含在OpenSSL的env.h中。

答案 1 :(得分:2)

我不确定,你的问题在这里。 DES_ecb_encrypt的联机帮助页 明确指出:

  

DES_ecb_encrypt()是加密或加密的基本DES加密例程   解密电子密码本(ECB)中的单个8字节DES_cblock   模式。

因此,要加密超过8个字节,您必须将数据填充为8的倍数并相应地迭代DES_ecb_encrypt()。但是你应该使用像EVP这样的高级界面,你不必关心这些细节。