资源简介
Hill密码的java实现,简单的实现,仅供参考

代码片段和文件信息
package com;
import javax.swing.JOptionPane;
public class Hill {
int key[][] = new int[2][2];
String PText = ““;
StringBuffer CText = new StringBuffer();
public static void main(String[] args) {
Hill h = new Hill();
h.inputKey();
h.inputPText();
h.encrypt();
h.getResult();
}
public void inputKey() {
key[0][0] = Integer.parseInt(JOptionPane.showInputDialog(“本程序是以2*2矩阵加密,请输入矩阵第1行第1列的值“));
key[0][1] = Integer.parseInt(JOptionPane.showInputDialog(“本程序是以2*2矩阵加密,请输入矩阵第1行第2列的值“));
key[1][0] = Integer.parseInt(JOptionPane.showInputDialog(“本程序是以2*2矩阵加密,请输入矩阵第2行第1列的值“));
key[1][1] = Integer.parseInt(JOptionPane.showInputDialog(“本程序是以2*2矩阵加密,请输入矩阵第2行第2列的值“));
}
public void inputPText() {
PText = JOptionPane.showInputDialog(“请输入明文“);
PText = PText.toUpperCase();
if(PText.length() % 2 != 0) {
PText += ‘X‘;
}
}
public int[] charToInt(String s) {
int[] i = new int[s.length()];
char c;
for(int j=0;j c = s.charAt(j);
i[j] = (c - ‘A‘) % 26;
}
return i;
}
public void intToChar(int[] out) {
char c;
for(int j=0;j c = (char) (out[j] + ‘A‘);
CText.append(c);
}
}
public void encrypt() {
int[] in = charToInt(PText);
int[] out = new int[in.length];
for(int i=0;i out[i] = (key[0][0] * in[i] + key[0][1] * in[i+1]) % 26;
out[i+1] = (key[1][0] * in[i] + key[1][1] * in[i+1]) % 26;
}
intToChar(out);
}
public void getResult() {
System.out.println(“加密矩阵:“);
for(int i=0;i for(int j=0;j if(key[i][j]<10)
System.out.print(key[i][j] + “ “);
else
System.out.print(key[i][j] + “ “);
}
System.out.println();
}
System.out.println(“\n明文:“);
System.out.println(PText);
System.out.println(“\n密文:“);
System.out.println(CText);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-13 11:24 Hill\
文件 301 2013-01-13 11:24 Hill\.classpath
文件 380 2013-01-13 11:24 Hill\.project
目录 0 2013-01-13 11:24 Hill\.settings\
文件 629 2013-01-13 11:24 Hill\.settings\org.eclipse.jdt.core.prefs
目录 0 2013-01-13 11:24 Hill\bin\
目录 0 2013-01-13 11:24 Hill\bin\com\
文件 3161 2013-01-13 14:27 Hill\bin\com\Hill.class
目录 0 2013-01-13 11:24 Hill\src\
目录 0 2013-01-13 11:24 Hill\src\com\
文件 2252 2013-01-13 14:27 Hill\src\com\Hill.java
- 上一篇:javaGUI开发的小程序
- 下一篇:OkHttpClientUtil封装类
相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
评论
共有 条评论