基本思想:

加密是把字符串中的每一个字符+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. 利用Columnal网格系统快速搭建网站的基本布局结构

    1.下面是一些对响应式设计提供了不同程度支持的CSS框架: (1)Semantic(http://semantic.gs); (2)Skeleton(http://getskeleton.com); ...

  2. python(2)-函数相关

    可变参数 def enroll(name, gender, age=6, city='Beijing'): print 'name:', name print 'gender:', gender pr ...

  3. Linq 动态查询排序

    Linq的排序一般是这样写的: query.OrderBy(x => x.Tel).Skip().Take(); 实际使用中排序字段可能是通过字符类型的参数来设置的,于是想这样实现: query ...

  4. Java集合框架使用总结

    Java集合框架使用总结 前言:本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看JavaAPI文档. 一.概述数据结 ...

  5. 关于js SDK的程序,java SDK的程序

    一:JS SDK 1.修改配置workspace 2.导入 3.Demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans ...

  6. js只允许输入数字

    <script type="text/javascript"> $(function () { $("[ID$=_PCT]").keyup(func ...

  7. IEnumerable、GetEnumerator、IEnumerator的理解

    概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections ...

  8. 编写Java程序最容易犯的21种错误

    1.duplicated code 代码重复几乎是最常见的异味了.他也是refactoring的主要目标之一.代码重复往往来自于copy-and-paste的编程风格.与他相对应oaoo是一个好系统的 ...

  9. ps aux和ps -ef命令区别

      ps aux 是用BSD的格式来显示 java这个进程 显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND   ps -ef ...

  10. Java实现堆排序(大根堆)

    堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键 ...