參考鏈接
- 工具系列 | Ubuntu18.04安裝Openssl-1.1.1_Tinywan的技術博客_51CTO博客
- 密碼學專題 openssl編譯和安裝_MY CUP OF TEA的博客-CSDN博客_openssl 編譯安裝
下載
- /source/index.html
編譯
- 使用命令sudo tar -xvzf openssl-1.1.1q.tar.gz 解壓。
- 使用cd openssl-1.1.1q/進入目錄
- 使用./config生成MakeFile,不加任何參數,默認的安裝位置為:/usr/local/bin/openssl
- 使用 make 進行編譯
- 不放心的話可以使用make tset檢查一下(可選步驟)
- 使用sudo make install進行安裝,這里一定要選擇root用戶的權限執行。?
?備份與替換
- 到上一步openssl就算安裝好了,但是還無法使用,需要通過軟鏈接的方式將新舊版本就行替換,依次運行下列命令。
- ?sudo mv /usr/bin/openssl /usr/bin/openssl.old ? ?//將舊版本的openssl進行備份
- sudo ln -s /usr/local/bin/openssl /usr/bin/openssl ? ?//將新版本的openssl進行軟鏈接
- cd /etc/ ? //進入etc目錄
- su ? ? //下一步一定要切換到root用戶
- echo "/usr/local/lib" >> ld.so.conf ? ?//將openssl的安裝路徑加入配置中
- ldconfig ?//重新加載配置
- 使用openssl進行驗證
補充
- 使用clion編寫代碼,測試是否可以引入openssl的庫文件
- 參考鏈接
- clion中鏈接openssl庫_MY CUP OF TEA的博客-CSDN博客_clion openssl
- 使用開源的openssl的md5頭文件,實現對于文件的md5代碼_MY CUP OF TEA的博客-CSDN博客
代碼?
#include "openssl/md5.h"
#include <iostream>
#include <fstream>
#include <iomanip>//#define MAX_DATA_BUFF = 1024;
//#define MD5_LENGTH = 16
char* get_file_md5(const char * path){char *out = (char *)malloc(33); //輸出std::ifstream file(path,std::ios::in|std::ios::binary);//打開文件unsigned char MD5_result[16];do {if(file.fail()){std::cout<<"open file failure!"<<std::endl;break;}MD5_CTX md5_ctx;MD5_Init(&md5_ctx);char data_Buff[1024];while (!file.eof()){file.read(data_Buff,1024);//讀取文件int length = file.gcount();if (length){MD5_Update(&md5_ctx,data_Buff,length);//將當前文件加入并且更新MD5}}MD5_Final(MD5_result,&md5_ctx); //獲取MD5for (int i = 0; i < 16; i++) { //將md5以16進制輸出snprintf(&(out[i*2]),16*2,"%02x",(unsigned int)MD5_result[i]);}}while (false);return out;
}int main(){std::string original_backup_file = "/home/chy-cpabe/test.txt";char *output = get_file_md5(original_backup_file.c_str());//original_backup_file為文件的名字std::cout << "md5:"<< output << std::endl;free(output);
}
- ?將執行結果和使用命令行計算得到的結果進行對比驗證
?
?