营销型企业网站诊断,网站开发图片侵权,岳麓区网站建设,电子购物网站设计注意事项
使用API的时候#xff0c;需要特别小心数据长度#xff0c;一般没有指定长度的参数#xff0c;默认都是16#xff08;AES_BLOCK_SIZE#xff09;个字节。输出数据的长度一般都是16字节的倍数#xff0c;否则会出现数组越界访问。以下API中#xff0c;encrypt表…注意事项
使用API的时候需要特别小心数据长度一般没有指定长度的参数默认都是16AES_BLOCK_SIZE个字节。输出数据的长度一般都是16字节的倍数否则会出现数组越界访问。以下API中encrypt表示加密decrypt表示解密。
生成加密/解密的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密码位数。即userKey的长度 * 8只能是128、192、256位。key向外输出参数。
使用AES加密解密key
void AES_encrypt(const unsigned char *in, unsigned char *out,const AES_KEY *key);
void AES_decrypt(const unsigned char *in, unsigned char *out,const AES_KEY *key);
参数说明
参数名称描述in输入数据。必须是16字节。out输出数据。必须是16字节。key使用AES_set_encrypt/decrypt_key生成的Key。
AES_encrypt/AES_decrypt一次只处理16个字节。如果输入数据较长你需要使用循环语句每16个字节处理一次直到所有数据处理完毕。如果数据不足16字节可以用0填充至16字节。
参考链接
AES加解密openssl中加密的用法