加解密:基于 openssl 实现 des ede3 cbc pkcs#5 算法
Code:
#include <stdio.h>
#include <stdlib.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
void encrypt_des_ede_cbc_pkcs(
unsigned char *in, // 待加密数据
unsigned int inLen, // 待加密数据字节数
unsigned char *key, // 密 钥,长度总是24字节
unsigned char *iv) // 偏移量,长度总是08字节
{
printf("encrypt......\n\n");
unsigned char *outBuf;
unsigned int outBufLen, outLen1, outLen2;
/* 依据PKCS填充规则 */
outBufLen = (inLen/8 + 1) * 8;
outBuf = (unsigned char *)malloc(outBufLen);
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, key, iv);
EVP_EncryptUpdate(&ctx, outBuf, &outLen1, in, inLen);
EVP_EncryptFinal_ex(&ctx, outBuf

本文详细介绍了如何使用OpenSSL库实现DES EDE3 CBC PKCS#5填充算法进行数据加密和解密。通过C语言代码示例,展示了加密和解密过程,并解释了PKCS#5填充的工作原理。同时,提供了基于Java的等效实现链接。

8019

被折叠的 条评论
为什么被折叠?



