用java 编写一个凯撒加密和解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java 编写一个凯撒加密和解密相关的知识,希望对你有一定的参考价值。

凯撒加密器 要求小写字母abcd 加密后结果是 defg就是向后移动三位 如xzy = abc求源代码与思路注释。。

参考技术A import java.util.Scanner;

public class Caeser
private String table; // 定义密钥字母表
private int key; // 定义密钥key
public Caeser(String table, int key)
// 根据不同的字母表和不同的密钥生成一个新的凯撒算法,达到通用的目的
super();
this.table = table;
this.key = key;

public String encrypt(String from)
//凯撒加密算法,传入明文字符串,返回一个密文字符串
String to = "";
for (int i = 0; i < from.length(); i++)
to += table.charAt((table.indexOf(from.charAt(i))+key)%table.length());

return to;


public static void main(String[] args)
Caeser caeser = new Caeser("abcdefghijklmnopqrstuvwxyz", 3);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要加密的字符串");
String str =scanner.nextLine(); //输入字符串 security
String result = caeser.encrypt(str); //调用加密方法进行加密
System.out.print(result); // 可得结果 vhfxulwb

参考技术B ascii码增加3不就行了吗

凯撒加密

一、古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串

 

程序:

package demo;

/*

 * 凯撒加密

 * 杜泽坤

 */

import java.util.*;

public class Addmi {

public static void main(String[]args){

System.out.println("请输入要加密的字符");

Scanner m=new Scanner(System.in);

String str=m.next();

char n[]=str.toCharArray();    //将字符串转化成字符数组

for(int i=0;i<str.length();i++)

{

n[i]=(char)(n[i]+3);

if((n[i]>90&&n[i]<97)||n[i]>122)

{

 n[i]=(char)(n[i]-26);

        }

         

        

         StringBuffer q = new StringBuffer();         

         for( i=0;i<str.length();i++)

         {

           q.append(n[i]);  

 

         }

          String nstr = q.toString();

          System.out.println("加密之后的字符串:"+"\n"+nstr);

        

    }

 

}

}

 

设计思想:

把输入的字符串转化成字符数组,然后进行加密,最后把加密过的输出。

 

 

二、String.equals()方法的实现代码

System.out.println(a.equals(b));这是实例判断相等,主要是判断内容相等。

三、课后作业之字串加密、动手动脑之String.equals()方法、整理String类的Length()charAt()getChars()replace()toUpperCase()toLowerCase()trim()toCharArray()使用说明。

String.equals():

作用:比较两个字符串内容是否相同 System.out.println(a.equals(b));

Length():

获取字串长度,字符串是一个对象,在这个对象中包含length属性,它是该字符串的长度,使用String类中的length()方法可以获取该属性值。

CharAt():

str1.charAt(index);返回字符串str1中下标为index的字符,下标从0开始计数

getChars():

getChar是一个函数输入,使用的时候无需格式说明,可直接调,调用格式为z=getChar();,这条语句表示等待用户从键盘输入一个字符,并赋给变量.

replace():

子串替换,通过String类的replace()方法,可以将原字符串中的某个字符替换为指定的字符,并得到一个新的字符串

toUpperCase() toLowerCase()

返回一个新字符,它拥有与字符串str1相同的字符,但是把所有的小写字母都转换成了大写返回一个新字符,它拥有与字符串str1相同的字符,但是把所有的大写字母都转换成了小写

trim()

去除头尾空格,通过String类的trim()方法,可以通过去掉字符串的首尾空格得到一个新的字符串。

toCharArray()

将字符串对象转换为字符数组。

 

以上是关于用java 编写一个凯撒加密和解密的主要内容,如果未能解决你的问题,请参考以下文章

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

加解密 Java 凯撒密码

求一个简单的python数字加密解密算法

shell整理(38)===凯撒加密和解密

古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串

delphi 数字加密和解密算法