• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Java
  • 标签: java,hill  

资源简介

网络信息安全里的hill算法,java代码

资源截图

代码片段和文件信息

package com.abel.hill;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;



public class Hill {
private int[][] cipherMatrix = new int[2][2];
private int[] sourceMatrix = {11387};

public Hill(){
initTwoDimisionsCipherMatrix();
}

/**
 * 用给定的可逆矩阵来初始化加密矩阵
 */
private void initTwoDimisionsCipherMatrix(){
for (int i = 0; i<2; i++) {
for (int j=0; j<2; j++) {
this.cipherMatrix[i][j] = sourceMatrix[i*2+j];
}
}
}
/**
 * 返回加密矩阵
 * @return
 */
public int[][] getCipherMatrix(){
return this.cipherMatrix;
}

/**
 * 返回加密矩阵的逆阵
 * @return
 */
public  int[][] getInverseMatrix() {
int[][] matrix = new int[2][2];
matrix[0][0] = cipherMatrix[1][1];
matrix[1][1] = cipherMatrix[0][0];
matrix[1][0] = (2600 - cipherMatrix[1][0])%26;
matrix[0][1] = (2600 - cipherMatrix[0][1])%26;
return matrix;
}

/**
 * 加密
 * @param encryptMatrix
 * @param c
 * @return
 */
public  char[] encrypt(int encryptMatrix[][] String source){
char c[] = source.toCharArray();
if(c.length%2!=0)
c = (String.valueOf(c) + “x“).toCharArray();
char[] b = new char[c.length];
for(int i = 0;i b[i]=(char)(((2600+((c[i]-65)*encryptMatrix[0][0]+(c[i+1]-65)*encryptMatrix[0][1]))%26)+65);
b[i+1]=(char)(((2600+((c[i]-65)*encryptMatrix[1][0]+(c[i+1]-65)*encryptMatrix[1][1]))%26)+65);
}
return b;
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1504  2012-01-04 15:28  hill\Hill.java

     文件        844  2012-01-04 15:28  hill\HillTest.java

     目录          0  2012-01-06 03:27  hill

----------- ---------  ---------- -----  ----

                 2348                    3


评论

共有 条评论

相关资源