91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 54KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-05
  • 語言: Java
  • 標(biāo)簽: Hill??加密算法??java??

資源簡(jiǎn)介

使用Java實(shí)現(xiàn)的Hill加密程序,有GUI,可生成隨機(jī)密鑰矩陣,可以統(tǒng)計(jì)字母頻率。內(nèi)附可執(zhí)行程序及源碼。

資源截圖

代碼片段和文件信息

package?en_decrypt.hill;

import?java.io.IOException;

/**
?*?Description:Hill算法的實(shí)現(xiàn)類
?*/
public?class?Hill{

public?static?int[][]inverseMatrix;//密鑰矩陣的逆設(shè)置此變量是為了方便顯示

/**
?*?Description:?使用hill算法進(jìn)行加密
?*
?*?@param?plainText?明文字符串
?*?@param?key?加密密鑰:3*3?的二維整型數(shù)組
?*?@return:String?密文
?*?@throws?IOException?輸入異常
?*/
public?static?String?encrypt(String?plainText?int[][]?key)?throws?IOException?{
//檢驗(yàn)明文字符串是否為空
if?(plainText?==?null?||?plainText.trim().isEmpty())?{
throw?new?IOException(“輸入的明文為空“);
}
//去除明文非字母字符
plainText=plainText.replaceAll(“[^a-zA-Z]“?““);

//根據(jù)明文和加密密鑰得到密文
String?cipherText?=?convert(plainText?key);
return?cipherText;
}

/**
?*?Description:?使用hill算法進(jìn)行解密
?*
?*?@param?cipherText?密文字符串
?*?@param?key?加密密鑰:3*3?的二維整型數(shù)組
?*?@return:String?明文
?*?@throws?IOException?輸入異常
?*/
public?static?String?decrypt(String?cipherText?int[][]?key)?throws?IOException{
//?檢驗(yàn)明文字符串是否為空
if?(cipherText?==?null?||?cipherText.trim().isEmpty())?{
throw?new?IOException(“輸入的明文為空“);
}
//去除明文非字母字符
cipherText=cipherText.replaceAll(“[^a-zA-Z]“?““);

//根據(jù)明文和加密密鑰得到密文
Matrix?matrix?=?new?Matrix(key);
// Float[][]?inverse?=?matrix.inverse();
// inverseMatrix?=?matrix.getRealInverse(inverse);
inverseMatrix?=matrix.getInverse();
String?plainText?=?convert(cipherText?inverseMatrix);
return?plainText;
}

/**
?*?Description:?hill算法的核心每3個(gè)字符與密鑰矩陣相乘
?*
?*?@param?rawText?未處理的文本
?*?@param?key?3*3密鑰矩陣
?*?@return:String?處理后的文本
?*/
private?static?String?convert(String?rawText?int[][]?key)
{
StringBuilder?str?=?new?StringBuilder(rawText.toUpperCase());
StringBuilder?result?=?new?StringBuilder();
Matrix?keyMatrix?=?new?Matrix(key);
//?加/解密
for?(int?i?=?0;?i? {
if?(i?+?1?>=?str.length())?{
str.append(‘X‘);
}
if?(i?+?2?>=?str.length())?{
str.append(‘X‘);
}
char?ch1?=?str.charAt(i);
char?ch2?=?str.charAt(i?+?1);
char?ch3?=?str.charAt(i?+?2);
//?構(gòu)造字符矩陣
int[][]?data?=?new?int[3][1];
data[0][0]?=?ch1?-?‘A‘;
data[1][0]?=?ch2?-?‘A‘;
data[2][0]?=?ch3?-?‘A‘;
Matrix?charMatrix?=?new?Matrix(data);

try?{//矩陣乘法結(jié)果模26
Matrix?multiplyMod?=?keyMatrix.multiply(charMatrix);
multiplyMod.mod(26);
for?(int?j?=?0;?j? char?m?=?(char)?(‘A‘?+?multiplyMod.getData()[j][0]);
result.append(m);
}
}?catch?(IOException?e)?{
e.printStackTrace();
}

}
return?result.toString();
}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-20?19:02??Hill\
?????文件???????48245??2017-12-16?20:37??Hill\Hill.jar
?????目錄???????????0??2018-04-20?19:01??Hill\src\
?????目錄???????????0??2018-04-20?19:02??Hill\src\en_decrypt\
?????目錄???????????0??2018-04-20?19:01??Hill\src\en_decrypt\hill\
?????文件????????2775??2017-12-10?13:43??Hill\src\en_decrypt\hill\Hill.java
?????文件????????9354??2017-12-13?10:42??Hill\src\en_decrypt\hill\Matrix.java
?????文件?????????523??2017-12-08?16:49??Hill\src\en_decrypt\hill\Test_Hill.java
?????目錄???????????0??2018-04-20?19:02??Hill\src\gui\
?????文件????????9573??2017-12-16?20:35??Hill\src\gui\HillGUI.java
?????目錄???????????0??2018-04-20?19:01??Hill\src\tools\
?????文件????????1685??2017-12-08?18:59??Hill\src\tools\HistogramBarChart.java
?????文件????????2560??2017-12-08?18:59??Hill\src\tools\Spectrum.java
?????文件????????2359??2017-12-10?12:37??Hill\src\tools\Tools.java

評(píng)論

共有 條評(píng)論