资源简介
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封装类
相关资源
- javaGUI开发的小程序
- java推箱子小游戏源码完整版
- java读取raw格式的图片并显示
- 传教士与野人问题Java实现
- java 根据文件名实现文件搜索
- 基于socket的用户注册,登录,文件上
- pc与手机蓝牙通信 java程序实现
- Java设计模式-类图大全(.chm)
- 能够处理括号的Java小计算器
- 1-10的代码
- 凯撒算法、playfair算法、hill算法的j
- JAVA 图片反色处理,放大或缩小
- java做的简易股票交易系统
- java社会实践报告
- 用java进行WPS的二次开发包
- java课程设计---学生信息管理系统 源代
- JS实现图片轮播效果(绝对可用
- 牛顿下山法、亚当姆斯法、最小二乘
- cas-client-java-2.1.1.zip
- java语言实现二叉树的各种操作
- java程序自动重新启动
- 数据库课程设计(JDBC+Swing)高校教材
- java实现简单的记事本程序内含源代码
- java在线客服聊天
- 《java技术开发大全》随书光盘源代码
- Java的输入输出流实现文件的复制
- java web实现文件的上传
- JAVAWEB批量文件器
- jaf-1_1_1.zip
- 使用java编写的简单的网络五子棋
评论
共有 条评论