1. 程式人生 > 其它 >C/C++程式設計:openssl使用(centos7、clion)

C/C++程式設計:openssl使用(centos7、clion)

技術標籤:# 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;
}

在這裡插入圖片描述