加密解密是一样的,都可用以下程序:
#include<stdioh>
#include<stringh>
#include<ctypeh>
int main()
{
int i=0;
char MingText[1024], MiText[1024];
printf("请输入明文:");
gets(MingText);
while(MingText[i])
{
if(isupper(MingText[i]))
{
MiText[i]='Z'-(MingText[i]-'A');
}
else if(islower(MingText[i]))
{
MiText[i]='z'-(MingText[i]-'a');
}
else MiText[i]=MingText[i];
i++;
}
MiText[i]=0;
printf("密文为:");
puts(MiText);
return 0;
}
一般来说都是把消息的词语替换成预先设定的暗语,解读时只要对照密码本即可破译,美国**《风语者》一片中美国人就是训练了一些会说印第安土著语的印第安人来传递密码,日本人尽管截获了电文,但是无从下手。有时发报之前还会在电文内添加一些无意义的词句来增加敌方的破译难度(这里不得不说一件这个 *** 作引发的趣事-----在二战的最后一次海上大战圣克鲁斯海战时,当时的美军海军司令尼米兹给舰队指挥官哈尔西发报询问他的位置时,就加了一句会引发歧义的话----“全世界都想知道”,弄的哈尔西火冒三丈,以为尼米兹在嘲笑他,因此不顾一切的去追杀日本舰队,险些把日军全歼)
实际 *** 作时为了节省时间,报务员会使用密码机,他只要正常输入电文,密码机就会自动输出加密好的电文,然后再拿去发
#include <stdioh>
void main()
{
char context[256];
int i=0;//context数组的下标
printf("Type the original text:\n");
gets(context);
while(context[i]!='!'&&context[i]!=0)//如果原字符串忘加“!”也应能正常结束
{
if ((context[i]>='A'&&context[i]<='V')||(context[i]>='a'&&context[i]<='v'))
context[i]=context[i]+4;
else if ((context[i]>='W'&&context[i]<='Z')||(context[i]>='w'&&context[i]<='z'))
context[i]=context[i]-22;
i++;
}
puts(context);
getchar();
}
#include <stdioh>
#include <stringh>
int main(int argc, char argv[])
{
char a[80];
int i,n;
n=strlen(gets(a));
for(i=0;i<n;i++)
{
if(a[i]>=87&&a[i]<=90||a[i]>=119&&a[i]<=122)
a[i]-=32;
if(a[i]<=86&&a[i]>=65||a[i]<=118&&a[i]>=97)
a[i]+=4;
}
puts(a);
return 0;
}
#include<stdioh>
void main(void)
{ char input,output;
printf("please input a charactor:\n");
scanf("%c",&input);
if(input>='A'&&input<='Z')
{
output=input+6;
if(output>='Z')
{ output=output-26;
}
}
else if(input>='a'&&input<='z')
{
output=input+6;
if(output>='z')
{ output=output-26;
}
}
else output=input;
printf("the result is %c\n",output);
}
以上就是关于c++密码加密算法全部的内容,包括:c++密码加密算法、二战时如何加密电文、c语言编程 为了使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)