<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>encryption on SecDoc</title>
    <link>https://secdoc.jazor.net/tags/encryption/</link>
    <description>Recent content in encryption on SecDoc</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <copyright>© 2026 黑豆子</copyright>
    <lastBuildDate>Fri, 10 Jul 2026 00:07:27 +0800</lastBuildDate><atom:link href="https://secdoc.jazor.net/tags/encryption/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>OpenSSL EVP 编程接口详解</title>
      <link>https://secdoc.jazor.net/posts/openssl-evp-programming-api-guide/</link>
      <pubDate>Fri, 10 Jul 2026 00:07:27 +0800</pubDate>
      
      <guid>https://secdoc.jazor.net/posts/openssl-evp-programming-api-guide/</guid>
      <description>在开发涉及加密通信或数据保护的应用时，直接调用底层密码学算法（如 AES、RSA、SHA）既繁琐又容易出错。OpenSSL 提供了 EVP（EnVElope Password）编程接口，将底层算法封装为统一的 API，开发者无需关心算法细节，只需调用统一的函数即可完成加密、哈希、签名等操作。
为什么使用 EVP 接口 直接使用 OpenSSL 的底层 API（如 AES_* 系列函数）存在以下问题：
算法切换困难：代码与特定算法强耦合，换算法需要大幅修改 安全风险：开发者可能忽略填充模式、IV 初始化等关键细节 接口不一致：不同算法的 API 风格各异，学习成本高 EVP 接口解决了这些问题：
统一 API：所有算法使用相同的使用模式 自动填充：AEAD 模式自动处理填充 易于切换：一行代码即可切换算法 内存安全：自动管理临时缓冲区 EVP 加密解密 EVP_CIPHER 相关的 API 用于对称加密和解密。以下是一个完整的示例，演示如何使用 EVP 接口进行 AES-256-GCM 加密：
加密示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 #include &amp;lt;openssl/evp.</description>
    </item>
    
  </channel>
</rss>
