当前位置:首页 » 密码管理 » 给电文加密

给电文加密

发布时间: 2023-07-10 12:21:16

A. 二战时如何加密电文

一般来说都是把消息的词语替换成预先设定的暗语,解读时只要对照密码本即可破译,美国电影《风语者》一片中美国人就是训练了一些会说印第安土着语的印第安人来传递密码,日本人尽管截获了电文,但是无从下手。有时发报之前还会在电文内添加一些无意义的词句来增加敌方的破译难度(这里不得不说一件这个操作引发的趣事-----在二战的最后一次海上大战圣克鲁斯海战时,当时的美军海军司令尼米兹给舰队指挥官哈尔西发报询问他的位置时,就加了一句会引发歧义的话----“全世界都想知道”,弄的哈尔西火冒三丈,以为尼米兹在嘲笑他,因此不顾一切的去追杀日本舰队,险些把日军全歼)
实际操作时为了节省时间,报务员会使用密码机,他只要正常输入电文,密码机就会自动输出加密好的电文,然后再拿去发

B. C语言的程序设计 电文加密,每个字母转换为字母表中循环右移的第三个字母。

//对一行电文进行加密,每个字母转换为字母表中循环右移的第三个字母
//大写字母C加密后的ASCII码值为(c-62)%26+65
//小写字母C加密后的ASCII码值为(c-94)%26+97
#include<stdio.h>
void main()
{
//定义数组a和b,以及控制变量i
char a[3];
char b[3];
int i;

//提示输入三个字母
printf("请输入三个字母不要用空格隔开\n");
//用for循环控制接受字母
for(i=0;i<3;i++)
scanf("%c",&a[i]);

//在下一循环前加入该句
printf("经加密后为:");

//用for循环计算加密后的字母的ASCII值
for(i=0;i<=2;i++)
{
if(a[i]>=97)
b[i]=(a[i]-94)%26+97;
if(a[i]>=65&&a[i]<97)
b[i]=(a[i]-62)%26+65;
//输出结果
printf("%c",b[i]);
}
printf("\n");
}

C. python电文加密

##注意:最左边每个=表示一个空格

def encrypt(t):

====s=""

====for e in t:

========if e.islower():

============s+=chr(97+(ord(e)-97+7)%26)

========elif e.isupper():

============s+=chr(65+(ord(e)-65+7)%26)

========else:

============s+=e

====return s

t=input()

print(t,encrypt(t))

D. 用C语言编程:对一行电文进行加密,每个字符转换为字母表中循环右移的第三的字母,如:a-b,b-e.....大写字

#include<stdio.h>

voidchange(chars[]){
inti;
for(i=0;s[i];++i){
if(s[i]>='a'&&s[i]<='z')
s[i]=(s[i]+2-'a')%26+'a';
elseif(s[i]>='A'&&s[i]<='Z')
s[i]=(s[i]+2-'A')%26+'A';
}
}

intmain(){
chars[256];
printf("输入一个字符串:");
scanf("%s",s);
change(s);
printf("转换后为:%s ",s);
return0;
}

E. 电文加密

#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
char s1[1100], s2[1100];
int s[1100];
int key, len, i, j;
void cpy()
{
int k = 0;
while (k != key)
{
if (!s[++j] && j < len)
k++;
if (j >= len)
j = j - len - 1;
}
s2[j] = s1[i];
s[j] = 1;
}
void cpy2()
{
int k = 0;
while (k != -key)
{
if (!s[++j] && j < len)
k++;
if (j >= len)
j = j - len - 1;
}
s2[i] = s1[j];
s[j] = 1;
}
int main()
{
#ifdef LOCAL
freopen("judge for e\\test\\1.in", "r", stdin);
freopen("judge for e\\test\\1.out", "w", stdout);
#endif
int c = 0;
while (cin >> key)
{
cout << "Case " << ++c << ":" << endl;
cin.getline(s1, 1);
cin.getline(s1, 1000);
len = strlen(s1);
memset(s, 0, sizeof(s));
if (key > 1)
for (i = 0, j = -1; i < len; i++)
cpy();
if (key < -1)
for (i = 0, j = -1; i < len; i++)
cpy2();
s2[len] = *\0*;
cout << s2 << endl;
cout << endl;
}
return 0;
}

F. 电文(字符串)加密,形成密码文(字符串)的问题

以前做过完全一样的啊,给,已经编译运行确认:

#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct node
{
char ch;
struct node *forward; /*链接下一节点*/
struct node *backward; /*链接前一节点*/
} CODE;

char *decode(char *ocode, int key)
{
char *ncode;
int length, count,i;
CODE *loop , *p;
length = strlen(ocode);
loop= (CODE*)malloc(length*sizeof(CODE)); /*动态分配密文环*/
for(i=0;i<length-1;i++)
{
loop[i].forward = &loop[i+1];
loop[i].backward =&loop[i-1];

}
loop[0].backward =&loop[length-1];
loop[0].forward = &loop[1];
loop[length-1].forward = loop;
loop[length-1].backward = &loop[length-2];

for(p=loop, i=0; i<length;i++)
{
/*产生密文链表*/
for(count=1;count<key; count++)
p= p->forward;
p->ch =*ocode++;
p->backward->forward =p->forward;
p->forward->backward = p->backward;
p = p->forward;
}
ncode = (char*)malloc((length+1)*sizeof(char));
for(i=0;i<length;i++)

ncode[i] =loop[i].ch;
ncode[length] = '\0';
return ncode;
}

void main()
{
char ocode[256];
int key, num=0;
printf("输入原文字符串: ");
while(num<255&&(ocode[num++]=getchar())!='\n');
ocode[(num==255)?num:num-1] ='\0';
do
{
printf("输入加密密钥:");
scanf("%d",&key);

} while(key<=1);
printf("电文的密码是: %s\n",decode(ocode,key));

}

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:433
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:744
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:147
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:240
java驼峰 发布:2025-02-02 09:13:26 浏览:652
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726