openssl3.4.0 hmac加密例子
时间: 2024-12-17 17:31:04 浏览: 55
在 OpenSSL 3.4.0 中,HMAC (Hash-based Message Authentication Code) 是一种常用的密码散列函数,用于验证数据的完整性和来源。以下是一个简单的 HMAC 加密示例,使用 SHA-256 算法:
```bash
# 安装 OpenSSL (如果尚未安装)
sudo apt-get install openssl
# 创建一个密钥(这里我们使用随机生成)
key="your_secret_key" # 替换为你想要使用的字符串
# 使用 OpenSSL 进行 HMAC 加密
echo "Your message to be authenticated" | openssl dgst -hmac "$key" -sha256 -binary > hmac_output.bin
# 输出结果将是一个二进制文件,可以保存下来作为安全的数据摘要
cat hmac_output.bin
```
在这个例子中,`dgst` 命令用于执行哈希操作,`-hmac` 参数指定密钥,`-sha256` 指定使用的散列算法(SHA-256),而 `-binary` 表明输出为二进制格式。
如果你想查看原始消息的 HMAC,你可以反序列化它并转换回文本:
```bash
openssl enc -base64 < hmac_output.bin > decrypted_hmac.txt
cat decrypted_hmac.txt
```
相关问题
openssl3.4.0 hmac c语言例子
OpenSSL 3.4.0 提供了HMAC (Hash-based Message Authentication Code) 功能,它允许通过哈希函数对数据进行加密以验证消息完整性和来源。以下是使用C语言的一个简单示例,展示如何使用OpenSSL HMAC库计算SHA256哈希值:
```c
#include <openssl/hmac.h>
#include <openssl/sha.h>
#include <string.h>
// 定义密钥和数据
const char *key = "my_secret_key";
const char *data = "Hello, OpenSSL HMAC Example!";
size_t key_len = strlen(key);
size_t data_len = strlen(data);
// 创建HMAC结构体,并设置哈希算法为SHA256
unsigned char hmac_output[HMAC_SHA256_DIGEST_LENGTH];
HMAC_CTX hmac;
HMAC_Init_ex(&hmac, (unsigned char*)key, key_len, EVP_sha256(), NULL);
// 计算HMAC
HMAC_Update(&hmac, (unsigned char*)data, data_len);
HMAC_Final(&hmac, hmac_output, &hmac_outlen);
// 清理HMAC上下文
HMAC_Final(&hmac, NULL, NULL);
HMAC_cleanup(&hmac);
// 打印结果
printf("HMAC-SHA256: ");
for(size_t i = 0; i < HMAC_SHA256_DIGEST_LENGTH; ++i) {
printf("%02x", hmac_output[i]);
}
printf("\n");
openssl3.4.0安装
### OpenSSL 3.4.0 安装教程
#### Windows 平台安装
对于Windows平台,可以从官方网站获取预编译的二进制文件来简化安装过程。下载适用于目标操作系统的可执行(.exe)安装程序并遵循向导提示完成设置流程[^1]。
安装完成后需配置环境变量以便命令行工具能够识别新版本的位置。具体来说就是把`C:\Program Files\OpenSSL-Win64\bin`加入到PATH中去,并确认该目录下的`openssl.cfg`被正确引用作为配置文件的一部分。
验证安装是否成功的常用方法是在CMD窗口输入`where openssl`查看返回的结果列表里是否有指向预期位置的条目存在;另外还可以通过运行`openssl version`命令直接查询当前使用的OpenSSL版本号来进行判断。
如果遇到冲突问题——比如系统内已有其他版本的OpenSSL残留——可能需要手动清理这些遗留组件以确保更新后的实例成为唯一有效的选择。例如,在某些情况下移除位于特定路径(`C:\Strawberry\c\bin`)中的旧版`openssl.exe`可能是必要的措施之一。
#### Linux 平台安装
针对Linux发行版而言,通常建议采用源码编译的方式来获得最稳定可靠的体验。这涉及到几个关键环节:
- **准备阶段**:确保具备构建所需的各种依赖项,像zlib-devel这样的包就属于常见的前置条件[^2]。
- **替换原有链接**:为了使整个操作系统层面都能享受到新版特性带来的好处,应当谨慎处理原有的符号链接关系。先保存好现有的`/usr/bin/openssl`副本以防万一,之后建立一个新的指向至刚刚安装完毕的新版本上的软连接。
- **刷新共享库缓存**:最后一步是要让动态加载器知道哪里能找到最新的加密函数实现。为此可以在`/etc/ld.so.conf.d/`创建一个名为`openssl-3.4.0.conf`的小文件并将适当的内容写入其中,随后执行`sudo ldconfig`令更改生效。
再次强调一遍,每次调整过后都应利用`openssl version`指令检验实际效果如何,以此保证每一步骤均按计划顺利推进。
```bash
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl-3.4.0.conf
sudo ldconfig
```
阅读全文
相关推荐















