当前位置: 首页 > news >正文

openssl下aes128算法CFB模式加解密运算实例

aes128算法CBC接口

加密接口


int openssl_aes128_encrypt_cfb(unsigned char *key,unsigned char *iv, unsigned char *in_buf, int in_len, unsigned char *out_buf,int* out_len)
{
    EVP_CIPHER_CTX* ctx = NULL;
    ctx = EVP_CIPHER_CTX_new();
    printf("%s %d\n", __func__, __LINE__);

    EVP_EncryptInit_ex(ctx, EVP_aes_128_cfb(), NULL, key, iv);
    EVP_CIPHER_CTX_set_padding(ctx, 0);

    if (!EVP_EncryptUpdate(ctx, out_buf, out_len, in_buf, in_len))
    {
        EVP_CIPHER_CTX_free(ctx);
        return -1;
    }

    int tmplen = 0;
    if (!EVP_EncryptFinal_ex(ctx, out_buf + *out_len, &tmplen))
    {
        EVP_CIPHER_CTX_free(ctx);
        return -2;
    }
 
    *out_len += tmplen;

    EVP_CIPHER_CTX_free(ctx);
    return 0;
}

解密接口


int openssl_aes192_decrypt_cfb(unsigned char *key,unsigned char *iv, unsigned char *in_buf, int in_len, unsigned char *out_buf,int* out_len)
{
    int ret = 0;
    EVP_CIPHER_CTX* ctx = NULL;
    ctx = EVP_CIPHER_CTX_new();
    printf("%s %d\n", __func__, __LINE__);

    EVP_DecryptInit_ex(ctx, EVP_aes_192_cfb(), NULL, key, iv);

    if (!EVP_DecryptUpdate(ctx, out_buf, out_len, in_buf, in_len))
    {
        EVP_CIPHER_CTX_free(ctx);
        return -1;
    }

    int tmplen = 0;
    ret = EVP_DecryptFinal_ex(ctx, out_buf + *out_len, &tmplen);
    if (ret)
    {
    //        RSP_TRACE("%s EVP_DecryptFinal_ex error ret=%d\n", __func__, ret);
        EVP_CIPHER_CTX_free(ctx);
        return -2;
    }

    *out_len += tmplen;

    EVP_CIPHER_CTX_free(ctx);
    return 0;
}

相关文章:

  • 【自学笔记】大数据基础知识点总览-持续更新
  • 机器视觉3D偏光法原理解析
  • Oracle 数据库基础入门(四):分组与联表查询的深度探索(上)
  • 8. Nginx 配合 + Keepalived 搭建高可用集群
  • DeepSeek 助力 Vue3 开发:打造丝滑的密码输入框(Password Input)
  • 模拟退火算法浅尝
  • Java 大视界 -- 基于 Java 的大数据分布式缓存一致性维护策略解析(109)
  • 阿里管理三板斧课程和管理工具包(视频精讲+工具文档).zip
  • Excel 豆知识 - XLOOKUP 为啥会出 #N/A 错误
  • git的恢复命令
  • 智能成绩表
  • PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】
  • 线性代数在机器学习中的理论与实践
  • 【UI设计——视频播放界面分享】
  • 神经网络之词嵌入模型(基于torch api调用)
  • 回归实战详细代码+解析:预测新冠感染人数
  • Hadoop之02:MR-图解
  • P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用
  • 大模型工程师学习日记(五):基于LangServe的AI服务架构深度解析
  • 汽车电子电控软件开发中因复杂度提升导致的架构恶化问题
  • 外包公司做网站价格/网站seo的优化怎么做
  • 零成本做网站/电脑培训学校在哪里
  • 360建筑网在哪里/aso关键词优化工具
  • 怎样做同性恋女视频网站/百度电话客服24小时人工
  • 免费永久vps服务器/谷歌关键词优化怎么做
  • 郑州网站建设 天强科技/免费网站搭建