基本思想:

加密是把字符串中的每一个字符+3解密是每一个字符-3

源代码:

package demo;
import java.util.Scanner;

class Encryption{
String a;
public void encryption(String q){
String string= "";
for(int i = 0;i < q.length();i++)
{
char b=q.charAt(i);
if(b >= 'a'&&b <='z')
{
b += 3;
if(b > 'z')
b-=26;
if(b < 'a')
b=+26;
}
else if(b >= 'A'&&b <= 'Z')
{
b+=3;
if(b > 'Z')
b-=26;
if(b < 'A')
b+=26;
}
string += b;
}
System.out.println("加密后为:"+string);
}

}
class Decryption{
String a;
public void decryption(String q){
String string= "";
for(int i = 0;i < q.length();i++)
{
char b=q.charAt(i);
if(b >= 'a'&&b <='z')
{
b -= 3;
if(b > 'z')
b-=26;
if(b < 'a')
b+=26;
}
else if(b >= 'A'&&b <= 'Z')
{
b-=3;
if(b > 'Z')
b-=26;
if(b < 'A')
b+=26;
}
string += b;
}
System.out.println("解密后为:"+string);
}

}
public class Password{
public static void main(String[] args){
System.out.println("a。加密 b.解密");
Scanner choose = new Scanner(System.in);
String a = choose.nextLine();
if(a.equalsIgnoreCase("a"))
{
Scanner c = new Scanner(System.in);
System.out.println("请输入明文:");
String b = c.nextLine();
Encryption en = new Encryption();
en.encryption(b);
}
else if(a.equalsIgnoreCase("b")) // equals 用来比较两个对象所表示的字符是否相同
{ // equalsIgnoreCase 用来比较对象所代表的字符与括号中字符是否相同
Scanner c = new Scanner(System.in);
System.out.println("请输入密码:");
String b = c.nextLine();
Decryption de = new Decryption();
de.decryption(b);
}
}
}

结果截图:

凯撒加密(key为3)的更多相关文章

  1. 凯撒加密解密(java字母移位)

    1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...

  2. CTF密码学之凯撒加密

    在加密的各种算法中,凯撒加密是最简单的也是最常见的一种加密方法,它的中心思想是替换,ROT加密其实就是凯斯加密的变种. 即明文的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文 ...

  3. java程序——凯撒加密

    古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图.   设计思想:输入一个字符串,然后将其中每 ...

  4. python凯撒加密

    在密码学中,恺撒密码是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例,当偏移量是3的时候,所有的字母A将 ...

  5. 凯撒密码加密C语言简单实现

    凯撒加密(Julius Caesar)该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母代替.(如果超越了字母Z,会绕道字母表的起始位置.例如,如果每个字母都用字母表中两个位置之后的字母代替 ...

  6. Bugku-CTF加密篇之凯撒部长的奖励(就在8月,超师傅出色地完成了上级的特遣任务,凯撒部长准备给超师傅一份特殊的奖励.......)

    凯撒部长的奖励 就在8月,超师傅出色地完成了上级的特遣任务,凯撒部长准备给超师傅一份特殊的奖励,兴高采烈的超师傅却只收到一长串莫名的密文,超师傅看到英语字串便满脸黑线,帮他拿到这份价值不菲的奖励吧. ...

  7. Bugku CTF练习题---加密---凯撒部长的奖励

    Bugku CTF练习题---加密---凯撒部长的奖励 flag:SYC{here_Is_yOur_rEwArd_enjOy_It_Caesar_or_call_him_vIctOr_is_a_Exc ...

  8. PHP脚本实现凯撒加(解)密

    原文:PHP脚本实现凯撒加(解)密 今天在看某ctf时候遇到一题凯撒加密的题,然后看到write up里有这样一句 顿时感觉这题目有点坑啊,这要不写个脚本来跑要推到啥时候啊,于是又了本文: <? ...

  9. java:凯撒密码及String的应用

    一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...

随机推荐

  1. jquery 取消绑定事件

    $(".TreeView1_0").unbind("mouseover"); $("#id").attr("onclick&quo ...

  2. C# 特殊关键字

    1.static 表示被修饰的对象的生命周期与当前的应用程序域相同,因此可以在多个实例中共享 2.const 表示常量且只能在声明时赋值,因此const的常量在编译时就能确定,它如果没有被static ...

  3. 【转】oracle回闪操作

    在9i上执行的操作 查询test表中记录select * from test;删除test表中记录delete from test;获得过去的会话exec dbms_flashback.disable ...

  4. P4实验问题 解决python模块导入

    参考:Python导入自定义包或模块 在执行./run_demo.sh的过程中,遇到了python的模块问题: root@ubuntu:/home/wasdns/tutorials/SIGCOMM_2 ...

  5. 几个常见Win32 API函数

    1.获取客户区矩形区域 RECT cliRect; GetClientRect(hWnd, &cliRect); 2.获取窗口上下文句柄 HDC hdc = GetDC(hWnd);//... ...

  6. fuelux.tree用法

    ACE中带了一个树,样式和操作挺好看的,就是难用,下面记录下如何使用. 首先fuelux.tree接受的数据源是Json,关键这个Json还不怎么标准,可接受的Json示例如下: { '刑侦': { ...

  7. jqxGrid 绑定格式化

    var cellsrenderer = function(row, columnfield, value, defaulthtml, columnproperties) { ) || (row == ...

  8. C#的默认可访问性级别

    1.在namespace中的类.接口默认是internal类型的,也可以显示的定义为public类型,不允许是其他访问类型.2.在一个类里面,属性和方法默认是private的,可以显示的定义为publ ...

  9. iScroll.js几个问题及其解决办法

    1.在一个页面中需要点击tab切换,而且每个切换的内容都需要下拉刷新加载,这个时候需要在点击的时候用到myScroll.refresh();这个函数,刷新iScroll.js这个函数. 2.在页面中有 ...

  10. Java maven安装GDAL

    1. 使用编译好的安装jdal http://www.gisinternals.com/release.phpgdal-111-1800-x64-core.msi下载地址:http://downloa ...