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

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

2.程序流程图

3.程序源码

import java.util.Scanner;
public class Code {
//严羽卿 凯撒加密与解密  2015 10 23
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  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:"); 
        int p;
        p=sc1.nextInt();     
        if(p==1)
        {
      System.out.println("加密之后为:");     
      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);
       }


        }
        if(p==2)
        {
      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);

}

}

4.结果截图

时间: 2024-08-08 13:56:02

凯撒加密解密(java字母移位)的相关文章

凯撒加密与解密实现

1.背景与原理 引自维基百科 在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推.这个加密方法是以罗马共和时期凯撒的名字命名的,据称当年凯撒曾用此方法与其将军们进行联系. 简单来说就是当秘钥为n,其中一个待加密字符ch,加密之后的字符为ch+n,

凯撒加密

一.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串 程序: package demo; /* * 凯撒加密 * 杜泽坤 */ import java.util.*; public class Addmi { public static void main(String[]args){ System.out.println("请输入要加密的字符"); Scanner m=new Scanner(System.in); St

凯撒密码加密解密--JAVA实现(基础)

凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 使用JAVA程序实现对明文的加密: package com.qikeyishu.www; public class Kaisapwd { public static void main(String[] args) { char str[]={'a','b'

java程序——凯撒加密

古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想:输入一个字符串,然后将其中每个字符单独取出,并且用字符的算法进行加3,强制转化为后面3位的字符,最后输出. 程序流程图: 源代码: package test; import java.util.*; //引用util包 public class Caesar { public static void main(String[] a

凯撒加密问题程序

设计思想:加密的过程是将字母在字母表中的位置向后移两位,即A编程D,字符串+3,解密时字符串-3: 程序流程图: 源代码: //王冶雯   凯撒问题加密和解密     关键点:加密是字符串+3,解密时-3 package string11; import java.util.Scanner; public class jiami { public static void main(String[] args)throws Exception { // TODO Auto-generated me

4动手动脑,总结及凯撒加密

一.StringEquals.java 1.源代码 public class StringEquals { /** * @param args the command line arguments*/ public static void main(String[] args) { String s1=new String("Hello"); String s2=new String("Hello"); System.out.println(s1==s2); Sys

Aes 加密解密 java加密解密

使用AES加密解密代码详解 首先,如果是使用nodejs + vue 写的前端, 那么你需要npm 加载一个js文件 npm i crypto-js --save --save-exact npm install crypto-js java代码加密解密类 package com.telling.util.crypto; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.co

des加密解密——java加密,php解密

最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混杂,好不容易测试在php这边测试加密和解密成功了.为确保安卓app端提交过来的加密参数能够解密出来,给定安卓人员一个字符串,让他们把des加密后的字符串给我,在php这边解密.结果一看,加密出来的字符串跟我这边加密出来的结果不一致,自然是解密不出来. 要来java的des算法代码,研究加密的过程,其

DES加密解密-&gt;java实现

DES加密解密涉及到的JAVA类 Cipher 此类为加密和解密提供密码功能.它构成了 Java Cryptographic Extension (JCE) 框架的核心. 为创建 Cipher 对象,应用程序调用 Cipher 的 getInstance 方法并将所请求转换 的名称传递给它.还可以指定提供者的名称(可选). 转换 是一个字符串,它描述为产生某种输出而在给定的输入上执行的操作(或一组操作).转换始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案. 转换具有以