使用java语言实现移位密码加密过程
使用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语言实现移位密码加密过程相关推荐
- 给java语言实现移位密码加密过程
import java.util.Scanner; /** *移位运算 / public class Shift { public static void main(String[] args) { ...
- python中字符移位加密_1.1 移位密码加密解密python实现
例题1.1 移位密码加密解密 1.1.使用穷尽密钥搜索法破译如下利用移位密码加密的密文: ESPESTCOPIPCNTDPYPPODACZRCLXXTYR. 1.1答案: K=11,明文序列为: th ...
- Java版 凯撒密码 加密、解密、暴力破解
Java版 凯撒密码 加密.解密.暴力破解 用Java实现凯撒密码的 '加密' 和 '解密' 工作 代码实现如下: 代码片 package com.hellow.demo;import java.ut ...
- Java语言运行机制及运行过程
1.4 Java语言运行机制及运行过程 lJava两种核心机制 ØJava虚拟机 (Java Virtal Machine) Ø垃圾收集机制 (Garbage Collection)1.4 Java语 ...
- java配置文件中数据库密码加密
最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...
- java语言运行机制与运行过程
核心机制:JVM与垃圾收集机制 JVM:java程序运行在JVM上,JVM在具体的操作系统上 垃圾回收:Java语言提供系统级线程跟踪存储空间的分配情况,在JVM空闲时检查并释放那些可被释放的存储空间 ...
- java web系统明文密码加密传输
最近项目PL提出系统数据越权和明文密码传输问题,涉及网络安全的问题,这让我一脸懵逼,查阅相关资料后做相关记录 1. 数据越权: 涉及重要功能需要验证用户是否当前用户操作,修改密码功能接口参数用户Id人 ...
- Java 语言的开发和执行过程_开发与运行Java程序需要经过的三个主要步骤为 和 。...
开发与运行Java程序需要经过的三个主要步骤为 和 . 更多相关问题 [单选] 孕.乳妇维持体内铁平衡需每矢从食物摄铁量为() [单选] 大多数HL患者的首发症状是() [单选] 侵及末梢血液造成赛塞 ...
- java中用户登陆密码加密方法
/** * 生成安全的密码,生成随机的16位salt并经过1024次 sha-1 hash */ public static String entryptPassword(String plainPa ...
- 机器语言,汇编语言,高级语言,c,java语言编译到运行过程
机器语言: 计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由"0" 和"1"组成的二进 ...
最新文章
- Grails 1.2参考文档速读(15):验证
- Kali Linux重新支持RTL8814au芯片
- 常用Apache Commons工具类备忘
- Python的列表推导式
- django-模型类中的数据类型-添加中
- 将connection存放在Threadlocal里和数据库连接池的区别
- 华佗穿越来教程序员睡觉
- 人民币金额小写转换大写
- 2020年11月软考网络规划设计师上午真题及答案解析
- 手机管理应用研究【5】——应用杂篇
- 图案设计灵感怎么写_妆容设计灵感怎么写
- kernel 选项详解(stlinux2.3) 2-2
- 卧槽!Pdf转Word用Python轻松搞定!
- ASSERT和VERIFY的区别
- 在ASF根据事件(Event)下载SAR数据
- 网络 TCP/IP 分层思想 综合布线系统
- 计算机一级培训 ppt,计算机基础培训ppt
- CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)
- 某煤矿竖井及选煤厂地质研究
- 字符编码、unicode、代码页、矢量字体及多国语开发
热门文章
- 05 pandas变形
- 对dede标签调用的内容进行判断并输出的方法
- 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
- 亚马逊云AWS MQTTS 证书使用说明
- V神以太坊:协议设计中的“封装复杂性” vs. “系统复杂性”
- halcon 20.11.02 深度学习语义分割例程报错
- risc-v 编译 linux,RISCV的linux模拟环境搭建整理和总结
- win10便签常驻桌面_Win10上自带超好用的便利贴
- 如何从Mixamo下载人物模型的动画
- cocos 躲避球游戏(1) --创建项目和场景切换