注意事项
-
对于用户输入的密码进行了md5运算,从而保证数据格式的统一性
-
内部调用的随机函数,参考我的其他博文 参考链接
头文件crypto_util.h
#pragma once
#include <string>
namespace hsm{
namespace mgmt{
void get_md5_digest(const std::string &data,uint8_t result[16]);
std::string aes_encrypt_to_string(const std::string &string,
const std::string &password);
std::string aes_decrypt_from_string(const std::string &string,
const std::string &password);
std::string aes_ecb_encrypt_to_string(const std::string &string,
const std::string &password);
std::string aes_ecb_decrypt_from_string(const std::string &string,
const std::string &password);
std::string aes_cbc_encrypt_to_string(const std::string &string,
const std::string &password);
std::string aes_cbc_decrypt_from_string(const std::string &string,
const std::string &password);
}//namespace mgmt
}//namespace hsm
源文件crypto_util.cpp
#include "../util/crypto_util.h"
#include <cstring>
#include <memory>
#include <openssl/aes.h>
#include <openssl/md5.h>
namespace hsm{
namespace mgmt{
void get_md5_digest(const std::string &data,uint8_t result[16]){
MD5_CTX md5_ctx{};
MD5_Init(&md5_ctx);
MD5_Update(&md5_ctx,data.c_str(),data.length());
MD5_Final(result,&md5_c