单表代换密码加密解密原理:
单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如:
26个源字母表为:abcdefghijklmnopqrstuvwxyz
代换的字母表为:qwertyuiopasdfghjklzxcvbnm
在加密时,按照设计好的对照表对每一个明文字母进行替换,如a替换为q,b替换为w等。
加密代码:
//s为代换字母表
string encrypt(string mingwen,string s)
{
string miwen;
int i,k;
for(i=0; i<mingwen.length(); i++)
{
if(mingwen[i]>='A'&&mingwen[i]<='Z')
mingwen[i] = mingwen[i]-'A'+'a';
k = mingwen[i]-'a';
miwen+=s[k];
}
return miwen;
}
解密代码:
string decrypt(string miwen,string s)
{
string mingwen;
int i,k;
char c;
for(i=0; i<miwen.length(); i++)
{
if(miwen[i]>='A'&&miwen[i]<='Z')
miwen[i] = miwen[i]-'A'+'a';
c = miwen[i];
for(k=0; k<s.length(); k++)
{
if(c==s[k])
{
mingwen+='a'+k;
break;
}
}
}
return mingwen;
}