用C++写一个哈希加密的实例

好的,以下是一个使用 C 语言实现哈希加密的简单示例:

#include <stdio.h> #include <string.h> #include <openssl/evp.h>

int main(int argc, char* argv[]) { // 定义输入的明文和输出的密文 char* plaintext = "hello, world!"; unsigned char ciphertext[EVP_MAX_MD_SIZE]; unsigned int ciphertext_len;

// 初始化哈希上下文
EVP_MD_CTX* ctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(ctx, EVP_sha256(), NULL);

// 添加数据并计算哈希值
EVP_DigestUpdate(ctx, plaintext, strlen(plaintext));
EVP_DigestFinal_ex(ctx, ciphertext, &ciphertext_len);

// 打印输出的密文
for (unsigned int i = 0; i < ciphertext_len; i++) {
    printf("%02x", ciphertext[i]);
}
printf("\n");

// 释放哈希上下文
EVP_MD_CTX_free(ctx);

return 0;

}

在这个示例中,我们使用 OpenSSL 库的 EVP_sha256() 函数来计算哈希值。EVP_DigestUpdate() 函数用于将数据添加到哈希上下文中,而 EVP_DigestFinal_ex() 函数用于完成哈希计算并将结果存储在 ciphertext 数组中。最后,我们使用循环来打印出输出的密文。

希望这个示例对你有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值