一、任务详情

  • 0 在Ubuntu中用自己的有位学号建一个文件,教材p186 Example8_8
  • 1.修改p186 Example8_8中代码,密钥password不用手动输入,使用Random产生随机数做密钥。
    1. 提交添加的代码和运行结果截图

二、源代码

1.Example8_8类

import java.util.Random;
public class Example8_8 {
public static void main(String args[]) {
Random ran = new Random();
String sourceString = "今晚十点进攻";
EncryptAndDecrypt person = new EncryptAndDecrypt();
int i = ran.nextInt(100);
System.out.println("随机密码加密:"+sourceString);
String password = String.valueOf(i);
String secret = person.encrypt(sourceString,password);
System.out.println("密文:"+secret);
System.out.println("自动解密");
password = String.valueOf(i);
String source = person.decrypt(secret,password);
System.out.println("明文:"+source);
}
}

2.EncryptAndDecrypt类

public class EncryptAndDecrypt {
String encrypt(String sourceString,String password) { //加密算法
char [] p= password.toCharArray();
int n = p.length;
char [] c = sourceString.toCharArray();
int m = c.length;
for(int k=0;k<m;k++){
int mima=c[k]+p[k%n]; //加密
c[k]=(char)mima;
}
return new String(c); //返回密文
}
String decrypt(String sourceString,String password) { //解密算法
char [] p= password.toCharArray();
int n = p.length;
char [] c = sourceString.toCharArray();
int m = c.length;
for(int k=0;k<m;k++){
int mima=c[k]-p[k%n]; //解密
c[k]=(char)mima;
}
return new String(c); //返回明文
}
}

三、运行截图

教材代码完成情况测试P186(课上测试)的更多相关文章

  1. Bag类的接口的实现与测试(课上测试补做)

    Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...

  2. 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试

    目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...

  3. 第六周课上测试-3-ch02补充作业

    实验要求: 编写一个程序 "week0603学号.c",运行下面代码: short int v = -学号后四位 unsigned short uv = (unsigned sho ...

  4. 2018-2019-1 20165330 《信息安全系统设计基础》第六周课上测试ch02&课下作业

    课上测试 测试-3-ch02 任务详情 编写一个程序 "week0203学号.c",运行下面代码: 1 short int v = -学号后四位 2 unsigned short ...

  5. 第六周课上测试-1-ch02

    第六周课上测试-1-ch02 1. 要求: 1.参考附图代码,编写一个程序 "week0601学号.c",判断一下你的电脑是大端还是小端. 2. 提交运行结果"学号XXX ...

  6. 教材代码完成情况测试P171(课上测试)

    一.任务详情 0 在Ubuntu中用自己的有位学号建一个文件,教材p171 Example7_7 增加一个类DangerException2, 显示"超轻"异常,超轻的阈值minC ...

  7. 20165221-week2课上测试补做

    week2-课上测试补做 测试一: 参考附图代码,编写一个程序 "week0201学号.c",判断一下你的电脑是大端还是小端. 提交运行结果"学号XXXX的笔记本电脑是X ...

  8. 20165305 苏振龙《Java程序设计》第四周课上测试补做

    第一次测试 第二次测试 第三次测试 上传代码 第四次测试 总结 之前我一直在git bash进行程序设计,但是对于我来说操作起来有点困难,所以我改用了虚拟机,之后之前一直困扰我的问题在虚拟机下就没有了 ...

  9. mapreduce课上测试

    今天上课的时候进行了一个mapreduce的实验,但是由于课下对于mapreduce还有hive的理解不够透彻,因此导致了课上没能完成这次实验. 关于本次课堂上的实验的内容大致为: 1.对一个70k的 ...

  10. 20165305 苏振龙《Java程序设计》第八周课上测试补做

    1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图 2. ...

随机推荐

  1. Js中toFixed()方法保留小数不精准的问题

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 问题:部分特殊数值使用toFixed() 方法会出现转换不正确的情况,举个例子: (3329.225).toFixed(2) ...

  2. 简化SpringMVC配置

    映射器处理器和适配器是可以省略的 为什么可以省略?因为有默认配置 SpringMVC的默认配置

  3. C#中实现Hash应用

    在C#中,数据的Hash以MD5或SHA1的方式实现,MD5与SHA1都是Hash算法,MD5输出是128位的,SHA1输出是160位的,MD5比SHA1快,SHA1比MD5强度高. 1.1 SHA- ...

  4. Mybatis常见面试题总结

    1.#{}和${}的区别是什么? ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc. ...

  5. Ubuntu安装配置Tensorflow-GPU

    Ubuntu 16.04 + GTX 1080 Ti + CUDA 9.0 + Cudnn 7.1 安装配置 1. 安装显卡驱动 首先查看一下自己的电脑需要怎样的驱动,我们可以先到 http://ww ...

  6. c++ 实时通信系统(基础知识TCP/IP篇)

    编写前的基础知识 C/S结构: C/S是Client/Server,即客户端/服务器端架构,一种典型的两层架构.客户端包含一个或多个在用户的电脑上运行的程序服务器端有两种,一种是数据库服务器端,客户端 ...

  7. Go语言标准库之fmt.Print

    Go语言fmt.Printf使用指南 本文整理了Go语言的标准输出流(fmt.Printf)在打印到屏幕时的格式化输出操作. 在这里按照占位符将被替换的变量类型划分,更方便查询和记忆. General ...

  8. java读写大文件

    java读写2G以上的大文件(推荐使用以下方法) static String sourceFilePath = "H:\\DataSource-ready\\question.json&qu ...

  9. MongoDB的优势应用场景和配置

    一:MongoDB的简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的 ...

  10. 高性能mysql 第11章 可扩展的mysql

    可扩展性的定义:当增加资源以获得执行更多的工作系统能获得划算的同等提升. 向上扩展(垂直扩展):提升服务器的硬件性能. 向外扩展(水平扩展):一般都是复制,拆分,数据分片(sharding). 复制: ...