網站首頁 編程語言 正文
裝這個主要是拿來和我自己寫的aes代碼做驗證的,但是其實OpenSSL能干的事情挺多的。
下載地址
https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz?
tar -zxvf openssl-OpenSSL_1_1_1d.tar.gz cd openssl-OpenSSL_1_1_1d sudo mkdir /usr/local/openssl ./config --prefix=/usr/local/openssl make sudo make install sudo mv /usr/bin/openssl /usr/bin/openssl.old sudo mv /usr/include/openssl /usr/include/openssl.old sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl sudo ln -s /usr/local/openssl/include/openssl /usr/include/openssl sudo vim /etc/ld.so.conf
在該文檔內加入openssl的lib路徑
/usr/local/openssl/lib
:wq保存
sudo ldconfig -v openssl version
測試代碼如下:
//test.cpp #include <iostream> #include <stdio.h> #include <memory.h> #include <stdlib.h> #include <cstring> #include <openssl/aes.h> using namespace std; static int getIntFromChar(char c); //把一個字符轉變成整型 static int getIntFromChar(char c) { int result = (int)c; return result & 0x000000ff; } int main(int argc, char *argv[]){ unsigned char buf2[16]; unsigned char buf3[16]; char str[16]; unsigned char strr[16]; int len; printf("輸入明文:\n"); scanf("%s",str); len=strlen(str); printf("len=%d\n",len); for(int i=0;i<len;i++){ strr[i]=getIntFromChar(str[i]); } unsigned char aes_keybuf[16]; char key[16]; getchar(); printf("輸入密鑰:\n"); scanf("%s",key); for(int i=0;i<16;i++){ aes_keybuf[i]=getIntFromChar(key[i]); AES_KEY aeskey; // 設置加密密鑰 AES_set_encrypt_key(aes_keybuf, 128, &aeskey); // 加密 AES_encrypt(strr,buf2,&aeskey); printf("輸出加密結果:\n"); printf("%x ",buf2[i]); printf("\n"); //設置解密密鑰 AES_set_decrypt_key(aes_keybuf, 128, &aeskey); //解密 AES_decrypt(buf2, buf3, &aeskey); buf3[16]='\0'; printf("輸出解密結果:\n"); printf("%s\n",buf3); return 0;
g++ test.cpp -o test -L/usr/local/openssl/lib -lcrypto ./test
運行效果如圖
原文鏈接:https://blog.csdn.net/mandiheyanyu/article/details/123680012
相關推薦
- 2022-11-24 使用sqlserver官方驅動包調用存儲過程遇到的坑及解決方法_MsSql
- 2023-11-23 cmake: command not found
- 2022-10-12 Android自定義View實現遙控器按鈕_Android
- 2022-07-10 Popconfirm氣泡確認框無法觸發confirm函數
- 2022-10-13 Pygame?zero集合_python
- 2023-04-06 C#?Csv實現基本的讀寫和轉換DataTable_C#教程
- 2022-05-10 設備像素比devicePixelRatio
- 2022-09-12 cmd設置路由route的方法步驟_DOS/BAT
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支