openssl——aes加密

aes加密是一种对称加密。
openssl的aes加密接口,要求数据是AES_BLOCK_SIZE的整数倍,所以当源数据不是16的整数倍时,需要填充一些字节。

一下是一个封装aes加密的例子:

bool AESEncrypt(const std::string& key, const std::string& src, std::string& encrypt, int aes_key_bits) {
    std::string plain = src;
    if (key.empty() || plain.empty()) {
        return false;
    }

    int data_length = plain.length();
    if (data_length % AES_BLOCK_SIZE != 0){
        int append_data_length = (data_length / AES_BLOCK_SIZE + 1) * AES_BLOCK_SIZE;
        int padding_data = 0;
        plain.append(append_data_length - data_length, padding_data);
        data_length = append_data_length;
    }
    unsigned char * input = new unsigned char[data_length + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值