日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

简单的加密/解密算法_/c++

發布時間:2024/9/21 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的加密/解密算法_/c++ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_36557960/article/details/79299093

????? ? 關于加密和解密問題,有的加密算法是不存在解密算法的(原因就是加密算法的不可逆性,即無法通過算法將密文還原),有的加密存在解密算法(原因是其加密過程是可逆的,即可以通過逆向算法將密文還原)。然而單獨的一種加密算法不一定可靠,這時可以將多種加密算法組合使用。至于相關的加密算法各位自己去了解。

????? ? 下面介紹一個簡單的加密/解密算法實例,希望對此加密解密算法有一定認識:?

????? ? 首先介紹加密算法: 主要加密計算為 '^' 原因是 '^'運算是可逆的,如二進制數 1^0 = 1, 1^1 = 0; 0^1 = 1, 0^0 = 0;

? 所以 1 = 1^0^0,即是加密部分為 [1^0] = r, 解密部分為[r^0], 所以解密算法就是將密文與加密數據0在進行一次'^'運算,以此類推就可以實現多位二進制的加密解密。在計算執行的指令都是二進制數,這里就需要理解為什么十進制和ASCII碼同樣可以使用'^'運算進行加密解密.`

????? ? c++源代碼:?

example_1:

#include <iostream>#define KEY 1313113using namespace std;//加密算法 int encrypt(int src_pass, int key){return src_pass^key; }//解密算法 int decrypt(int des_pass, int key){return des_pass^key; }int main(){int src_pass = 2000;cout<<src_pass<<endl;int des_pass = encrypt(src_pass, KEY);cout<<des_pass<<endl;int result = decrypt(des_pass, KEY);cout<<result<<endl;return 0; }

?????? ? example2:

#include <iostream> #include <windows.h> #define L 6using namespace std;//原始數據 int mess[L] = {-23, -28, -19, -19, -18, -10};//對原始數據進行加密 //加密算法 void encrypt(char *arr, int len){for(int i = 0; i < len; i++){arr[i] |= -0x80; //希望讀者了解ascii^-0x80,這里等價于 ascii^0x80arr[i] ^= 0x1;} } //解密算法 void decrypt(char *arr, int len){for(int i = 0; i < len; i++){arr[i] ^= 0x1; arr[i] ^= 0x80; //對ascii最高位進行了加密'^'運算,當然也要進行解密'^'運算} } bool judge(char* arr, int index){if(index < 0){return true;}else{if((int)arr[index] == mess[index]){judge(arr, index-1);}else{return false;}}return true; } //測試用 void print_(char *arr, int len){for(int i = 0; i < len; i++){cout<<(int)arr[i]<<", ";}cout<<endl; } //測試用 string print(char *arr, int len){string tmp = "";for(int i = 0; i < len; i++){tmp += arr[i];}return tmp; } //測試時的源代碼 int main() {char *arr = new char[L];cout<<"please input the password: ";for(int i = 0; i < L; i++){cin>>arr[i];}string tmp = "";tmp = print(arr, L);cout<<tmp<<endl;encrypt(arr, L);print_(arr, L);tmp = print(arr, L);cout<<tmp<<endl;decrypt(arr, L);tmp = print(arr, L);cout<<tmp<<endl;if(judge(arr, L-1)){cout<<"you is the user, hello!!"<<endl;}else{cout<<"you are not the user!!!"<<endl;}system("pause");return 0; }
  • ? ? ?希望兩個小例子,各位能夠有所收獲。

  • 總結

    以上是生活随笔為你收集整理的简单的加密/解密算法_/c++的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。