【发布时间】:2011-01-10 00:21:02
【问题描述】:
...OpenSSL 的好心人慷慨地为我提供的是this. :)
现在since you shouldn't be guessing when using cryptography,我来确认一下:我要使用的函数调用是什么?
我的理解
128 位密钥是 16 字节大,所以我需要双 DES(2 × 8 字节)。这让我只有几个函数调用:
void DES_ede2_cfb64_encrypt(const unsigned char *in,
unsigned char *out, long length, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_cblock *ivec, int *num, int enc);
void DES_ede2_cbc_encrypt(const unsigned char *input,
unsigned char *output, long length, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_cblock *ivec, int enc);
void DES_ede2_cfb64_encrypt(const unsigned char *in,
unsigned char *out, long length, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_cblock *ivec, int *num, int enc);
void DES_ede2_ofb64_encrypt(const unsigned char *in,
unsigned char *out, long length, DES_key_schedule *ks1,
DES_key_schedule *ks2, DES_cblock *ivec, int *num);
在这种情况下,我猜测我想调用 DES_ede2_cfb64_encrypt 的函数,虽然我不太确定——我绝对不需要在这里填充,我必须关心关于ivec 和num 是什么,以及我想如何生成它们......
我错过了什么?
【问题讨论】:
-
为什么要使用 DES,因为它已经损坏和弃用了很长时间?
标签: c cryptography openssl