C/C++程式設計:openssl使用(centos7、clion)
阿新 • • 發佈:2021-02-05
技術標籤:# C++
準備
# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
使用
例子1
1、建立一個工程
2、Cmakelist.txt
cmake_minimum_required(VERSION 3.16)
project(llibz)
set(CMAKE_CXX_STANDARD 11)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries (${PROJECT_NAME} -lcrypto)
3、main.cpp
#include <openssl/ssl.h>
std::string sha256(const std::string str)
{
char buf[2];
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hash, &sha256);
std::string newString = "";
for (int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
sprintf(buf,"%02x",hash[i]);
newString = newString + buf;
}
return newString;
}
例子2
1、建立一個工程
2、Cmakelist.txt
cmake_minimum_required(VERSION 3.16)
project(llibz)
set(CMAKE_CXX_STANDARD 11)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries (${PROJECT_NAME} -lssl)
3、main.cpp
#include <stdio.h>
#include "openssl/ssl.h"
int main ()
{
SSL_CTX* ctx = NULL;
const SSL_METHOD* meth = NULL;
OpenSSL_add_ssl_algorithms(); // 初始化
SSL_load_error_strings(); // 為列印除錯資訊作準備
meth = TLSv1_client_method(); // 採用什麼協議(SSLv2/SSLv3/TLSv1)在此指定
ctx = SSL_CTX_new (meth);
printf("%X\n", ctx);
return 0;
}