使用java语言实现移位密码加密过程

  • 一、凯撒密码(移位密码)
  • 二、运行软件
  • 三、代码
    • 1.加密
    • 2.解密
    • 3.运行
  • 四、运行结果
    • 1.加密结果
    • 2.解密结果

一、凯撒密码(移位密码)

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

二、运行软件



Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将Eclipse当作 Java IDE 来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

三、代码

1.加密

public class PutPasswordDemo {void PutPassword(){String input = null;Scanner sc = new Scanner(System.in);System.out.println("请输入字母:");input = sc.next();StringBuffer code = new StringBuffer();Scanner sc1=new Scanner(System.in);for(int i = 0;i < input.length();i++){char x = input.charAt(i);     if(x >= 'a' && x <= 'w'){x = (char)(x+3);code.append(x);}if(x >= 'x' && x <= 'z'){x=(char)(x-23);code.append(x);}     if(x >= 'A' && x <= 'W'){x = (char) (x+3);code.append(x);}if(x >= 'X' && x <= 'Z'){x=(char)(x-23);code.append(x);}}        System.out.println(code);String str=""+code;try {BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("d:\\PutPassword.txt"));byte[] data=str.getBytes();bos.write(data);bos.close();} catch (FileNotFoundException e) { e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

2.解密

void GetPassword(){String input = null;Scanner sc = new Scanner(System.in);System.out.println("请输入字母:");input = sc.next();StringBuffer code = new StringBuffer();Scanner sc1=new Scanner(System.in);System.out.println("解密:");for(int i = 0;i < input.length();i++){char x = input.charAt(i);if(x >= 'a' && x <= 'c'){x=(char)(x+23);code.append(x);}else if(x >= 'd' && x <= 'z'){x = (char)(x-3);code.append(x);}else if(x >= 'A' && x <= 'C'){x=(char)(x+23);code.append(x);}else if(x >= 'D' && x <= 'Z'){x = (char) (x-3);code.append(x);}} System.out.println(code);String str=""+code;try {BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("d:\\GetPassword.txt"));byte[] data=str.getBytes();bos.write(data);bos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void ReadGetFile(){try {BufferedInputStream bis=new BufferedInputStream(new FileInputStream("d:\\GetPassword.txt"));byte[] data=new byte[1024];int n=-1;while((n=bis.read(data, 0, data.length))!=-1){String str=new String(data,0,n,"utf-8");System.out.println(str);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void ReadPutFile(){try {BufferedInputStream bis=new BufferedInputStream(new FileInputStream("d:\\PutPassword.txt"));byte[] data=new byte[1024];int n=-1;while((n=bis.read(data, 0, data.length))!=-1){String str=new String(data,0,n,"utf-8");System.out.println(str);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

3.运行

package charpter;import java.util.Scanner;public class MoveDemo {public static void main(String[] args) {PutPasswordDemo pp=new PutPasswordDemo();
//        String input = null;
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入字母:");
//        input = sc.next();
//        StringBuffer code = new StringBuffer();Scanner sc1=new Scanner(System.in);System.out.println("加密请按1,解密请按2,读取上次加密文件请按3,读取上次解密文件请按4:"); int p;p=sc1.nextInt(); if(p==1)pp.PutPassword();if(p==2)pp.GetPassword();if(p==3)pp.ReadGetFile();if(p==4)pp.ReadPutFile();}}

四、运行结果

1.加密结果

 以我姓名拼音majiarong为明文,偏移量为3时,获得密文pdmldurqj![在这里插入图片描述](https://img-blog.csdnimg.cn/20200327231344933.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21qcjQyMg==,size_16,color_FFFFFF,t_70)

2.解密结果

以pdmldurqj为密文,偏移量为3时,获得明文majiarong我的姓名拼音

使用java语言实现移位密码加密过程相关推荐

  1. 给java语言实现移位密码加密过程

    import java.util.Scanner; /** *移位运算 / public class Shift { public static void main(String[] args) { ...

  2. python中字符移位加密_1.1 移位密码加密解密python实现

    例题1.1 移位密码加密解密 1.1.使用穷尽密钥搜索法破译如下利用移位密码加密的密文: ESPESTCOPIPCNTDPYPPODACZRCLXXTYR. 1.1答案: K=11,明文序列为: th ...

  3. Java版 凯撒密码 加密、解密、暴力破解

    Java版 凯撒密码 加密.解密.暴力破解 用Java实现凯撒密码的 '加密' 和 '解密' 工作 代码实现如下: 代码片 package com.hellow.demo;import java.ut ...

  4. Java语言运行机制及运行过程

    1.4 Java语言运行机制及运行过程 lJava两种核心机制 ØJava虚拟机 (Java Virtal Machine) Ø垃圾收集机制 (Garbage Collection)1.4 Java语 ...

  5. java配置文件中数据库密码加密

    最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...

  6. java语言运行机制与运行过程

    核心机制:JVM与垃圾收集机制 JVM:java程序运行在JVM上,JVM在具体的操作系统上 垃圾回收:Java语言提供系统级线程跟踪存储空间的分配情况,在JVM空闲时检查并释放那些可被释放的存储空间 ...

  7. java web系统明文密码加密传输

    最近项目PL提出系统数据越权和明文密码传输问题,涉及网络安全的问题,这让我一脸懵逼,查阅相关资料后做相关记录 1. 数据越权: 涉及重要功能需要验证用户是否当前用户操作,修改密码功能接口参数用户Id人 ...

  8. Java 语言的开发和执行过程_开发与运行Java程序需要经过的三个主要步骤为 和 。...

    开发与运行Java程序需要经过的三个主要步骤为 和 . 更多相关问题 [单选] 孕.乳妇维持体内铁平衡需每矢从食物摄铁量为() [单选] 大多数HL患者的首发症状是() [单选] 侵及末梢血液造成赛塞 ...

  9. java中用户登陆密码加密方法

    /** * 生成安全的密码,生成随机的16位salt并经过1024次 sha-1 hash */ public static String entryptPassword(String plainPa ...

  10. 机器语言,汇编语言,高级语言,c,java语言编译到运行过程

    机器语言:    计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由"0" 和"1"组成的二进 ...

最新文章

  1. Grails 1.2参考文档速读(15):验证
  2. Kali Linux重新支持RTL8814au芯片
  3. 常用Apache Commons工具类备忘
  4. Python的列表推导式
  5. django-模型类中的数据类型-添加中
  6. 将connection存放在Threadlocal里和数据库连接池的区别
  7. 华佗穿越来教程序员睡觉
  8. 人民币金额小写转换大写
  9. 2020年11月软考网络规划设计师上午真题及答案解析
  10. 手机管理应用研究【5】——应用杂篇
  11. 图案设计灵感怎么写_妆容设计灵感怎么写
  12. kernel 选项详解(stlinux2.3) 2-2
  13. 卧槽!Pdf转Word用Python轻松搞定!
  14. ASSERT和VERIFY的区别
  15. 在ASF根据事件(Event)下载SAR数据
  16. 网络 TCP/IP 分层思想 综合布线系统
  17. 计算机一级培训 ppt,计算机基础培训ppt
  18. CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)
  19. 某煤矿竖井及选煤厂地质研究
  20. 字符编码、unicode、代码页、矢量字体及多国语开发

热门文章

  1. 05 pandas变形
  2. 对dede标签调用的内容进行判断并输出的方法
  3. 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
  4. 亚马逊云AWS MQTTS 证书使用说明
  5. V神以太坊:协议设计中的“封装复杂性” vs. “系统复杂性”
  6. halcon 20.11.02 深度学习语义分割例程报错
  7. risc-v 编译 linux,RISCV的linux模拟环境搭建整理和总结
  8. win10便签常驻桌面_Win10上自带超好用的便利贴
  9. 如何从Mixamo下载人物模型的动画
  10. cocos 躲避球游戏(1) --创建项目和场景切换