西安网络优化大的公司,seo代码优化,太原自助建站,软件开发需要什么技术001数据安全传输-多端协议传输平台#xff1a;Openssl安装和配置 - EVP代码测试 文章目录 001数据安全传输-多端协议传输平台#xff1a;Openssl安装和配置 - EVP代码测试1. 安装1.1 windows下安装openssl1.2 Linux下安装OpenSSL 2. VS中使用openssl3. 测试 1. 安装
1.1 win…001数据安全传输-多端协议传输平台Openssl安装和配置 - EVP代码测试 文章目录 001数据安全传输-多端协议传输平台Openssl安装和配置 - EVP代码测试1. 安装1.1 windows下安装openssl1.2 Linux下安装OpenSSL 2. VS中使用openssl3. 测试 1. 安装
1.1 windows下安装openssl OpenSSL安装完成。
1.2 Linux下安装OpenSSL
下载安装包, 下载地址: https://github.com/openssl/openssl
源码安装包解压缩
.zip格式: unzip openssl.zip .tar.gz格式: tar zxvf openssl.tar.gz .tar.bz格式: tar jxvf openssl.tar.gz 进入解压目录, 安装可参考安装文件INSTALL:
./config
make
make test 可选
make install (使用管理员权限执行该命令)验证是否安装成功 openssl version -a 输出结果
OpenSSL 1.1.1-pre6-dev xx XXX xxxx
built on: Mon Apr 23 10:53:02 2018 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: /usr/local/ssl
ENGINESDIR: /usr/local/lib64/engines-1.1
Seeding source: os-specific2. VS中使用openssl 3. 测试 将openssl安装目录/bin目录下(C:\OpenSSL-Win32\bin)的两个动态库拷贝到工作目录下: libcrypto-1_1.dll libssl-1_1.dll C:\OpenSSL-Win32 是我的openssl安装目录 测试代码如下:
#define _CRT_SECURE_NO_WARNINGS
//#include openssl/md5.h // md5 头文件
#include stdio.h
#include string.h
#include stdlib.h
#include openssl/evp.hvoid getMD5(const char* str, char* result)
{EVP_MD_CTX* mdctx;unsigned int md5_digest_len EVP_MD_size(EVP_md5());//求属性长度//MD5_CTX ctx;// 初始化//MD5_Init(ctx);mdctx EVP_MD_CTX_new();EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);// 添加数据//MD5_Update(ctx, str, strlen(str));EVP_DigestUpdate(mdctx, str, strlen(str));// 计算结果unsigned char md[16] { 0 };//MD5_Final(md, ctx);EVP_DigestFinal_ex(mdctx, md, md5_digest_len);for (int i 0; i 16; i){sprintf(result[i * 2], %02x, md[i]);}EVP_MD_CTX_free(mdctx);
}int main()
{char result[33] { 0 };getMD5(hello, md5, result);printf(md5 value: %s\n, result);system(pause);return 0;
}输出结果: md5 value: 33b3bc8e05b4fcc16bd531dd9adac166