-
大小: 157KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-13
- 语言: Java
- 标签:
资源简介
这是我信息安全课程做的作业之一,里面包含了凯撒算法、playfair算法、hill算法的实现,有界面,而且输入还是做得挺完善的,有简单的环境说明文档,主要是hill算法的实现,大家可以看仔细了,书本的逆矩阵做法是不完整的。需要交流的可以留言
代码片段和文件信息
package com.cjm.encryptional.caesar;
import javax.naming.spi.DirStateFactory.Result;
import org.junit.Test;
import com.cjm.exception.InputException;
/**
*
* title:CaesarUtils 凯撒算法的实现
* Description:
* @author cjm
* @date 2017年10月31日 下午3:07:15
*/
public class CaesarUtils {
/**
* Description:凯撒加密算法
*
* @param plain_text
* 明文字符串
* @param key
* 加密的密钥,正数表示右移,负数表示左移
* @return:String
* @throws InputException
* 输入异常信息
*/
public static String encrypt(String plain_text int key) throws InputException {
// 1. 输入校验
// 1.1 检查输入的明文是否为空
if (plain_text == null || plain_text.trim().isEmpty()) {
throw new InputException(“您输入的明文为空“);
}
// 1.2 检查输入的明文是否由26个字母组成
/*
* String check_str = plain_text.replaceAll(“\\s*“ ““).toLowerCase();//
* 去掉空格、制表符等空白字符并且变为小写 for(int i=0;i * check_str.charAt(i); if(!(c>=‘a‘ && c<=‘z‘)) { throw new
* InputException(“您输入的明文中包含非字母“); } }
*/
// 2. 实现凯撒算法
StringBuilder result_str = new StringBuilder(plain_text.toUpperCase());
for (int i = 0; i < result_str.length(); i++) {
char c = result_str.charAt(i);
if (c >= ‘A‘ && c <= ‘Z‘) {
result_str.setCharAt(i (char) (((int) c - 65 + key+26) % 26 + 65));
}else {
result_str.setCharAt(i c);
}
}
// 返回密文
return result_str.toString();
}
/**
* Description:凯撒算法解密
*
* @param cipher_text
* @param key
* @return
* @return:String
* @throws InputException
*/
public static String decrypt(String cipher_text int key) throws InputException {
String result = null;
result = encrypt(cipher_text-key);
return result;
}
@Test
public void test_algo() throws InputException {
String string = CaesarUtils.encrypt(“I am a student“ 6);
System.out.println(“密文“+string);
System.out.println(“明文“+decrypt(string 6));
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-09 10:49 305_3115005567_陈俊铭_信息安全第二次作业\
文件 40830 2017-11-09 10:34 305_3115005567_陈俊铭_信息安全第二次作业\encryption.jar
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\
文件 379 2017-10-29 15:43 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\.classpath
文件 391 2017-10-29 15:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\.project
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\.settings\
文件 57 2017-11-04 18:17 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\.settings\org.eclipse.core.resources.prefs
文件 598 2017-10-29 15:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\caesar\
文件 1725 2017-11-09 09:50 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\caesar\CaesarUtils.class
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\hill\
文件 3706 2017-11-09 09:51 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\hill\HillUtils.class
文件 5390 2017-11-09 09:49 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\hill\Matrix.class
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\playfair\
文件 699 2017-11-06 17:16 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\playfair\ArrayIndex.class
文件 2857 2017-11-07 19:34 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\playfair\LetterMatrix.class
文件 4225 2017-11-07 19:37 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\playfair\PlayfairUtils.class
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\utils\
文件 2182 2017-11-09 09:53 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\utils\BasicTools.class
文件 1265 2017-11-06 22:16 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\utils\MyRegExp.class
文件 833 2017-11-07 18:39 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\utils\ResultData.class
目录 0 2017-11-09 10:01 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\
文件 1966 2017-11-06 22:51 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\CaesarView$1.class
文件 1966 2017-11-06 22:51 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\CaesarView$2.class
文件 931 2017-11-06 22:51 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\CaesarView$3.class
文件 3332 2017-11-06 22:51 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\CaesarView.class
文件 913 2017-11-07 21:12 305_3115005567_陈俊铭_信息安全第二次作业\info_safe_work1\bin\com\cjm\encryptional\view\ChooseMenu$1.class
............此处省略44个文件信息
评论
共有 条评论