一、任务详情

  • 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); //返回明文
}
}

三、运行截图

最新文章

  1. xamarin UWP自定义圆角按钮
  2. ajxa
  3. mac 下 chrome 语言环境 设置
  4. Codeforces Round #141 (Div. 2)
  5. hdu 3449
  6. HDU4515+计算日期
  7. SQL中的delete和TRUNCATE的用法
  8. 新秀学习51供应链管理的----模拟笔记本PC和51串行通讯1
  9. python安装MySQLdb:在windows下或linux下(以及eclipse中pydev使用msqldb的配置方法)
  10. LightOJ - 1245 Harmonic Number (II) 求同值区间的和
  11. javascript:void(0)的问题
  12. [Unity Shader] 逐顶点光照和逐片元漫反射光照
  13. 20162328蔡文琛 week05 大二
  14. \avformat.h(40) : fatal error C1083: 无法打开包括文件:“libavcodec/avcodec.h”: No such file or directory
  15. python RabbitMQ广播
  16. 解决hadoop 集群启动常见错误办法
  17. 自定制serilazry字段
  18. mac下完全卸载mysql的方法
  19. 记一次Jenkins 打包异常 ERROR: Exception when publishing, exception message [Failure]
  20. moiezen

热门文章

  1. python词云生成-wordcloud库
  2. vm文件
  3. private修饰的方法可以通过反射访问,那么private的意义是什么?
  4. python之开发规范
  5. 两种表复制语句(SQL)
  6. 多线程编程-- part 7 CountDownLatch
  7. oracle服务端字符集
  8. dedecms sql 替换 或 删除
  9. linux命令详解——umask
  10. Delphi RadioGroup 组件