哪个openssl命令等同于DES_cfb64_encrypt函数?

时间:2015-10-01 14:05:49

标签: encryption openssl cfb-mode

我正在尝试使用OpenSSL解密以编程方式加密的文件。 OpenSSL用于加密文件,我知道使用的函数和密钥:

//This declaration is just figurative
const char keybuf = "12345678";
// Prepare the key for use with DES_cfb64_encrypt
DES_cblock key2;
DES_key_schedule schedule;
// keybuf is the string key used as password
memcpy(key2, keybuf, 8);
DES_set_odd_parity(&key2);
DES_set_key_checked(&key2, &schedule);
int n = 0;
DES_cfb64_encrypt( ..., ..., length, &schedule, &key2, &n, DES_ENCRYPT );

首先我将文件从base64转换为二进制文件(这是它的打包方式):

cat data.b64 | base64 --decode > data.cr

现在我在加密数据上运行命令行(假设我需要des-cfb是algorighm):

openssl enc -d -des-cfb -in data.cr -out data.decr -k 12345678

这就是我得到的:

bad magic number

那么我在这里做错了什么?也许我从base64错误地转换了文件?

1 个答案:

答案 0 :(得分:1)

  

哪个openssl命令等同于DES_cfb64_encrypt函数?

<强>无

CFB mode是参数化模式,DES_cfb64_encrypt中的64将移位寄存器或段的大小设置为64位。命令行接口仅支持CFB模式的3个段大小,它们是1位,8位和密码块大小(DES为64位)。这三种参数化模式彼此不兼容,它们不能用于解密用CFB-64加密的密文。