資源簡(jiǎn)介
網(wǎng)絡(luò)信息安全里的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;
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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
評(píng)論
共有 條評(píng)論