求一些关于现代密码学的问题答案,问题见图片

如题所述

第1个回答  2014-04-12
import java.*;

public class Practise {

public static void main(String[] args) {
int i=0,j=0;
char alphabetVeginere[][]=new char[26][26];//存储维吉利亚方表的二维数组
char alphabetCaesar[]=new char[26];
String P=new String();//明文
String K=new String();//密钥
String C=new String();//密文

//生成维吉利亚方表
for(i=0;i<26;i++)
{
for(j=0;j<26;j++)
{
alphabetVeginere[i][j]=(char)((i+j)%26+65);//字母A在ASCII表中的值是065
}
}

//生成凯撒字母表
for(i=0;i<26;i++)
{
alphabetCaesar[i]=(char)(i+65);
}

//K="butterfly";
K="P";
C="QTCGTCRPXCXPDNXOWX";//凯撒密文
//C="CAMSCPDBHOFDTDKYIK";
//C="AZRABIOBEHNYENIIINCA";
//C="CYGKIEHLGOCTHCZESG";//维吉利亚密文

System.out.println(CaesarEncrypt(K,C,alphabetCaesar));
//System.out.println(ViginereEncrypt(K,C,alphabetVeginere));
}

//凯撒解密
private static String CaesarEncrypt(String K,String C,char []alphabet)
{
String P=new String();
int i=0,j=0,n=0;//n是间隔
n=String.valueOf(alphabet).indexOf(K);

for(i=0;i<C.length();i++)
{
j=String.valueOf(alphabet).indexOf(C.charAt(i));
j=(j-n+26)%26;//向左移动n位
P+=(char)(j+65);
}
P=P.toLowerCase();
return P;
}

//维吉利亚解密
private static String ViginereEncrypt(String K,String C,char [][]alphabet)
{
String P=new String();
int i=0,x=0,y=0;//x是行数,y是列数

for(i=0;i<C.length();i++)
{
x=(int)K.toUpperCase().charAt(i%K.length())-65;//计算密钥每个字母所对应的行数
y=String.valueOf(alphabet[x]).indexOf(C.charAt(i));//计算密文每个字母所对应的列数
P+=(char)(y+65);
}
P=P.toLowerCase();

return P;
}
}
1、"QTCGTCRPXCXPDNXOWX";//凯撒加密密文
2、"CAMSCPDBHOFDTDKYIK";
3、"AZRABIOBEHNYENIIINCA";
4、"CYGKIEHLGOCTHCZESG";//维吉利亚加密密文
以上皆能解码出benrencainiaoyizhi,本人菜鸟一只追问

2、3分别是什么呢方式呢,解密需要将程序读取就行了么

追答

我不懂密码学,昨天都是上网搜的资料然后弄的程序
第2个"CAMSCPDBHOFDTDKYIK",没有密钥,手推是普莱费尔playfair(网上搜普莱塞尔怎么也搜不到,我晕,这什么题目),已经知道怎么做了,程序今天才弄
第3个应该就是表格转置式,但是网上搜不到呀,你能跟我说说原理是啥么??不知道原理,写不出程序

追问

我就是这题的答案,菜鸟一只,不懂啊,需要写程序的么?

追答

我还以为你要的是程序啊,手写也是可以的啊,我都是上网搜的资料,昨天第一次接触,现在四题都懂了,你肯定也可以的,我先手工推,才再写程序的

追问

帮忙手写一个标准点的答案被,一大波人等着咧,昨天看了看,完全不懂啊

追答

我上网找了一个表格转置式的,有一点小错,但是思路方向是对的,答案也是对的


其他的网上都有啊,那些字母密码表怎么手写啊,晕,那个维吉利亚方表写到手抽筋啊,网上都有这个表的,你查一下就好了,很容易的,就是那个普莱费尔复杂一点,但是这个题已经没有密钥了,哎,如果有语音就好了,我直接说你就明白了


以后你选分类,像这样的不是要程序的,别分到这里了,不然大伙儿都以为是要程序,给你的也是程序

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网