openSSL实现AES加密

Posted Edver

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openSSL实现AES加密相关的知识,希望对你有一定的参考价值。

Openssl是很常见的C接口的库,个人觉得易用。以下是AES加密的使用备忘。如果你有一定的密码学基础,那么就很好理解。代码是从网上弄下来的(原始地址已经忘记了),然后在尝试的过程中改了一点东西。其它的cbccfbecb加密方式的用法都是类似的,只是函数名有点区别,就不一一列举了。

一、接口简介

//设置加密密钥,使用字符缓冲区

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);

 

//加解密的接口,通过最后的enc来区分是加密还是解密操作

//每次执行AES_cbc_encrypt后,iv(向量)会被更新,

//所以需要自己保存它。

void AES_cbc_encrypt(

        const unsigned char *in,

        unsigned char *out,

        const unsigned long length,

        const AES_KEY *key,

        unsigned char *ivec,

        const int enc);

 

 

 待续。。。

以上是关于openSSL实现AES加密的主要内容,如果未能解决你的问题,请参考以下文章

php openssl aes-256-cbc key长度自动匹配了128的长度,为啥

利用openSSL库AES模块加密

PHP中的AES加密以在openssl中解密

如何在 Openssl 中使用 AES 进行加密

mbedtls 和 openssl 之间的不同 AES-256 加密输出

OpenSSL AES_cfb128_encrypt C++