• 大小: 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个文件信息

评论

共有 条评论

相关资源