openssl 中调用哪个函数实现16字节des密钥cbc方式加密数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openssl 中调用哪个函数实现16字节des密钥cbc方式加密数据?相关的知识,希望对你有一定的参考价值。

使用OpenSSL的EVP接口实现des128加密的逻辑流程如下:

// 初始化上下文数据结构,指定算法(EVP_des_ede_cbc)、密钥(key)、初始化向量(initVector)
//
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit_ex(&ctx, EVP_des_ede_cbc(), NULL, key, initVector);
......

// 加数的中间过程调用EVP_EncryptUpdate,pInBuffer、inSize指定要加密的明文和长度。
// 函数从pOutBuffer,outSize中返回加密后的密文和长度。
// 可以反复调用该API加密多个数据块。注意所有EVP函数是失败时返回0值。
//
ret = EVP_EncryptUpdate(&ctx, pOutBuffer, &outSize, pInBuffer, inSize);
if (0 == ret) goto ErrorExit;
......

// 在所有数据块加密完成后调用Final函数取得最后的对齐数据。
//
ret = EVP_EncryptFinal_ex(&ctx, pOutBuffer, &outSize);
if (0 == ret) goto ErrorExit;
......

// 最后返回的时候别忘了释放资源。
ErrorExit:
EVP_CIPHER_CTX_cleanup(&ctx);
return ret;

解密过程与上面一样,只是中间调用的函数分别变成EVP_DecryptInit_ex、EVP_DecryptUpdate和EVP_DecryptFinal_ex。OpenSSL EVP接口的相关说明可以去查官方文档或请教百度老师。
参考技术A 忘了密码,就选了匿名回答,郁闷。。。

以上是关于openssl 中调用哪个函数实现16字节des密钥cbc方式加密数据?的主要内容,如果未能解决你的问题,请参考以下文章

LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密

go语言 实现对称加密解密算法

江湖“密”事——对称加密

OpenSSL中对称加密算法DES常用函数使用举例

加密算法与openssl的使用

AES加密