当你和你的好朋友聊天的时候,你们的聊天内容很容易就被看出来,那么小天狼星这边可以给到一些建议~~
一、用另一种语言
通常来说,使用除中文和其他常用语言外的语言是一个优秀的选择!
例如:乌伯克语、阿亚帕涅科语。
当你们学会了这种语言的时候,可以用语言进行交流,这样,你们的聊天内容就没有什么人可以听出来了~~
二、使用文字加密
文字加密是一种常用的加密方法,例如把文章改成拼音,或者改成数字。
而复杂的加密也可以做到,例如:用二进制替代字母,用字母替代拼音,再用拼音替代文字。
小天狼星
↓
xiao tian lang xing
我们今天要使用的加密方法就是基于这种加密方法!
三、方法二的改进
方法二中,加密是有规律的,这样很容易让人破解,十分不美妙。
所以我们对方法二进行改进,可以加上或减去某个数字,这就得到了凯撒加密:
小天狼星
↓
xiao tian lang xing
↓ +3
aldr wldq odqj alqj
四、图灵来了都解不开的加密
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
string zm[30]={ " zxegrymcohlinpkjadvfwubtqs"," oyedjsvnqzrfmtbkapxgwhiluc"," baqlzkduespxncmirwfovyhtjg"," jscfplhriaoytbgexzdwqmunkv"," rjvchpbomxydlfeqzkgntuisaw"," xyfnqctrjaeswdpzkoviumblgh"," gyjbeifmwolkducsatnpzxvqrh"," ivyudglkbmtpoxfswaecqrhznj"," azevmthkbqnuyxwciplgsjdrfo"," jhrnqvwdueytixpbzcalofkmsg"," ehgvbmyipjnltdazrowqfucksx"," fdwmxjkosyvztlucnrabiqephg"," ndlfrwaxjqetumvpkczoysgbhi"," yxomjepbtlkvwfugqahinrcszd"," lqdchpwnjvokgtubearfzixmys"," kmyjlohegipdanfrucqvstbxwz"," emtbgkyqdnhxurpfivowljszac"," bunmcrvzpswhtjglixqadfkoye"," wkzqxvgmcrathobisufyljpend"," gasymewuoqxkbjzdhlivtrnfpc"," jkvhltfmubpseoqzicxrdyagwn"," icvtkhyqerzgsbpxuajdnmlofw"," ljtoypqbefmvucgwaxszndkhir"," gjneamtswfkdczlybroqihxvpu"," nmljsqkcuriexhvztopabdywgf"," plgknrqiwjubahxtydocmsfzev"};
char yuanwen[1000000];
int l,fangan,anhao,daan,jiajie,a[1000000];
void shuchu()
{cout <<a[1];for (int i=2;i<=l;i++){if (a[i]!=0)cout <<"." <<a[i];else{cout <<"_" <<a[i+1];i++;}}
}
int main()
{srand(time(0)); do{memset(a,0,sizeof(a));cout <<"\n\n\n加密(1)、解密(2)还是关闭程序(3):";cin >>jiajie;if (jiajie==1){cout <<"请输入原文:\n";gets(yuanwen);gets(yuanwen); l=strlen(yuanwen);fangan=rand()%26+1;for (int i=1;i<=l;i++){a[i]=zm[fangan].find(yuanwen[i-1]);}cout <<fangan <<"." <<rand()%17+10 <<"_";shuchu();}else if(jiajie==2) {cout <<"请输入原文:\n";gets(yuanwen);gets(yuanwen); l=strlen(yuanwen);int kk=0,w,shu=0;for (int i=0;yuanwen[i]!='.';i++){kk*=10;kk+=yuanwen[i]-48;w=i;}for (int i=w+5;i<=l;i++){if (yuanwen[i]>='0' && yuanwen[i]<='9'){shu=shu*10+yuanwen[i]-48;}else{cout <<zm[kk][shu];if (yuanwen[i]=='_')cout <<" ";shu=0;}}}elseexit(0);}while(1);return 0;
}
这个加密程序共有26种加密的方式,还可以根据自己的需求来改变秘钥。
秘钥就是程序开头的一大串字母,随机生成秘钥的程序我会放在文章末尾。
现在讲解一下这个代码的操作:
- 它首先会生成一个数,代表用的是哪种加密方式
- 然后会根据这个加密方式来加密
- 如果要解密就用这个程序的解密功能即可
这个程序妙就妙在连编写这个程序的人都不知道如何解密。
加密和解密的事例如下:
可以看到,我们对 "xiao tain lang xing"进行加密的时候,它会生成不同的加密文本,但都可以解密成原文本。
五、秘钥生成
那26条秘钥肯定不是我手动输入的,而是程序生成的:
#include<bits/stdc++.h>
using namespace std;
int a[30];
bool pd()
{for (int i=1;i<=26;i++){if (a[i]==0)return 1;}return 0;
}
int main()
{srand(time(0));for (int i=1;i<=26;i++){memset(a,0,sizeof(a));cout <<"\" ";while(pd()){int r=rand()%26+1;if (a[r]==0){a[r]=1;cout <<char(r+96);}}cout <<"\",\n";}return 0;
}
生成的秘钥只要复杂上去就行了,甚至不用手工改格式!!