openssl AES 加密/解密

本文介绍了AES加密算法,重点讲解了在OpenSSL中使用AES-CBC模式进行加解密的原理和代码示例。讨论了AES的秘钥长度、加密模式以及填充方式,如PKCS7,强调了CBC模式的特点和应用。
摘要由CSDN通过智能技术生成

以 aes-cbc-128, PKCS7 填充方式为例。
以下为使用两种不同api的实现相同加解密的代码:

int AesDecrypt(const std::string& sessionkey, const std::string& encrypted_data, const std::string& iv, std::string &plaintext)
{
   
    // set decrypt key
    AES_KEY aes_key;
    //设置秘钥位数,只能为 128,192,256; 若key_bits为256,也可以设置key_bits为128,此时秘钥只使用了前 (128/8 = 16)位
    const int key_bits = 8 * sessionkey.size();
    ret = AES_set_decrypt_key((const unsigned char*)sessionkey.c_str(), key_bits, &aes_key);
    if (ret != 0)
    {
   
        ERROR("AES_set_decrypt_key failed, ret: %d, key: %s, key_bits: %d", ret, sessionkey.c_str(), key_bits);
        return -2;
    }<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值