恺撒移位密码,将字母顺序后移5位的时候:明文 F O R E S T 密文 K T W J X Y

问题描述:

恺撒移位密码,将字母顺序后移5位的时候:明文 F O R E S T 密文 K T W J X Y
#include
#include
void main()
{
int n,l,i,j,a[100];
char s[100][100],c[100][100];
scanf("%d",&n);
for ( i = 0; i < n; i++ )
{
scanf("%d",&a[i]);
getchar();
gets(s[i]);
}
/* for ( i = 0; i < n; i++ )
{
printf("%d\n",a[i]);
puts(s[i]);
}*/
for ( i = 0; i < n; i++ )
{
l = strlen(s[i]);
for ( j = 0; j < l; j++ )
{
if ( ( s[i][j] >= 'a' && s[i][j] = 'A' && s[i][j] = 'z' - a[i] + 1 && s[i][j] = 'Z' - a[i] + 1 && s[i][j]
1个回答 分类:综合 2014-10-30

问题解答:

我来补答
如果你问的是电报码,那就还有中文电码,即用四个数字的组合代表汉字,一种无理码,差不多除了死记外无规律可循,现在基本不同了.
其实,如果是电报码,有一种就够了,何必再去发明呢?
如果您问的是密码,介绍几种常见密码形式:
1、栅栏易位法.
即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码.
举例:盗用阿洗一个例子^^
TEOGSDYUTAENNHLNETAMSHVAED

将字母分截开排成两行,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再将第二行字母分别放入第一行中,得到以下结果
THE LONGEST DAY MUST HAVE AN END.
2、恺撒移位密码.
也就是一种最简单的错位法,将字母表前移或者后错几位,例如:
明码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密码表:DEFGHIJKLMNOPQRSTUVWXYZABC
这就形成了一个简单的密码表,如果我想写frzy(即明文),那么对照上面密码表编成密码也就是iucb(即密文)了.密码表可以自己选择移几位,移动的位数也就是密钥.
3、进制转换密码.
比如给你一堆数字,乍一看头晕晕的,你可以观察数字的规律,将其转换为10进制数字,然后按照每个数字在字母表中的排列顺序,拼出正确字母.
举例:110 10010 11010 11001

很明显,这些数字都是由1和0组成,那么你很快联想到什么?二进制数,是不是?嗯,那么就试着把这些数字转换成十进制试试,得到数字6 18 26 25,对应字母表,破解出明文为frzy,呵呵~
4、字母频率密码.
关于词频问题的密码,我在这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:
a 8.2 b 1.5 c 2.8 d 4.3
e 12.7 f 2.2 g 2.0 h 6.1
i 7.0 j 0.2 k 0.8 l 4.0
m 2.4 n 6.7 o 7.5 p 1.9
q 0.1 r 6.0 s 6.3 t 9.1
u 2.8 v 1.0 w 2.4 x 0.2
y 2.0 z 0.1
词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确.这种方法由于要统计字母出现频率,需要花费时间较长,本人在此不举例和出题了,有兴趣的话,参考《跳舞的小人》和《金甲虫》.
5、维热纳尔方阵.
上面所说的频率分析,很容易破解较长篇幅的密文,于是维热纳尔继承前人的经验,创造出了这个维热纳尔方阵,从而克服了词频分析轻易能够破解密码的弊端,成为一种较为强大的密码编译形式.
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
以上就是维热纳尔方阵,它由明码表(第一行的字母)、密码表(下面26行)和密钥组成,下面我举个例子说明.
举例:
密钥:frzy
密码:qfuc
第一个字母,看以f开头第五行,对应明码表查找q字母所标示的字母为l.以此类推找出后面字母.所得明文为love.
一些新兴的密码形式:
1、利用键盘
无论是计算机键盘,还是手机键盘,都是出密码的好工具哦,可以用错位、或者排列形状等.使用手机键盘和这个同理.另外手机键盘还可以在键盘的字母上做文章,例如你可以用51表示字母j,用73表示字母r等.
举例:
r4a6
这个密码利用计算机键盘,将明文字母分别向上移动一个位置,得到密文.破解结果为frzy.
852 74123 74123698 74269 78974123456 7412369
这排数字是不是很晕?其实很简单,对照小键盘,依次打这些字母,看组成的形状就行了.答案是I L O V E U.
2、字母形状
本人曾经收到过这样一个密码短信,不幸被破解,导致发短信人被我非常严肃地奚落了一番^^!前面我不记得了,只记得后面是hep poo6.这个你可以从手机里打出来,然后把手机倒过来看,形成了密码的明文,good day~~~:)
20回答者: caibird1122 - 四级 2008-11-10 19:23
 
 
展开全文阅读
剩余:2000
上一页:....详细步骤
下一页:望能尽快解答