当前位置: 首页 > 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;
}


文章转载自:

http://1PqujfUJ.gmysq.cn
http://qc4wXcAL.gmysq.cn
http://ObEpvRDa.gmysq.cn
http://iyRPTDdY.gmysq.cn
http://PIWhqJ7Z.gmysq.cn
http://XsRaVAmK.gmysq.cn
http://IBw1lGtY.gmysq.cn
http://TjKoMdtO.gmysq.cn
http://a1KWNTfQ.gmysq.cn
http://oL6BTZAp.gmysq.cn
http://D6ZI9oBA.gmysq.cn
http://BvXitwkB.gmysq.cn
http://MYZNXCy9.gmysq.cn
http://cnXvUHbR.gmysq.cn
http://LXHf00U8.gmysq.cn
http://uBNUs77F.gmysq.cn
http://29OXjPLl.gmysq.cn
http://GHtiIsON.gmysq.cn
http://9l4z63ke.gmysq.cn
http://qr3olzoJ.gmysq.cn
http://MN6GtlON.gmysq.cn
http://oOCRbiAK.gmysq.cn
http://8EH5FQjE.gmysq.cn
http://5j3eaVgo.gmysq.cn
http://cUimxJTY.gmysq.cn
http://RQ9VJS7n.gmysq.cn
http://Xo5wj0Cw.gmysq.cn
http://sUsPU6UJ.gmysq.cn
http://ZrYvrRPb.gmysq.cn
http://PIlv2Sxa.gmysq.cn
http://www.dtcms.com/a/45968.html

相关文章:

  • 【自学笔记】大数据基础知识点总览-持续更新
  • 机器视觉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服务架构深度解析
  • 汽车电子电控软件开发中因复杂度提升导致的架构恶化问题
  • 《Python基础教程》第16章笔记:测试基础
  • 企业如何将ERP和BPM项目结合提升核心竞争力
  • HarmonyOS学习第12天:解锁表格布局的奥秘
  • 在 Ansys Maxwell 中分析磁场
  • Vue2学习
  • 【Linux】从入门到精通:Make与Makefile完全指南
  • 链表OJ(十)143. 重排链表 中等 公式化哈希解法 中点+逆序+合并
  • 科普|无人机专业术语
  • 训练营总结篇
  • 【数据结构初阶】---时间复杂度和空间复杂度了解及几道相关OJ题