《OpenSSL中AES加密的用法》
作者: 游蓝海
原文链接: http://blog.csdn.net/you_lan_hai/article/details/50992719
转载请注明出处
使用API的时候,需要特别小心数据长度,我在初次使用的时候简直被弄的晕头转向,遂作此文留个备忘。一般没有指定长度的参数,默认都是16(AES_BLOCK_SIZE
)个字节。输出数据的长度一般都是16字节的倍数,否则会出现数组越界访问。
以下API中,encrypt表示加密,decrypt表示解密。
1.生成加密/解密的Key
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
AES_KEY *key);
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
AES_KEY *key);
参数说明:
参数名称 | 描述 |
---|---|
userKey | 用户指定的密码。注意:只能是16、24、32字节。如果密码字符串长度不够,可以在字符串末尾追加一些特定的字符,或者重复密码字符串,直到满足最少的长度。 |
bits | 密码位数。即us |