900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 凯撒密码的Java实现

凯撒密码的Java实现

时间:2023-11-19 02:09:24

相关推荐

凯撒密码的Java实现

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

在本代码中,需要输入两个变量字符串数组及偏移量n,同时代码中给与两个方法dataEncryption(str)和dataDeciphering(str),需要调用加密或者解密时分别调用即可。

package Mao.Learning;import javax.xml.crypto.Data;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;public class Caeser {static int n;public static void main (String[] args) {char []ans = new char[26];Scanner sc = new Scanner(System.in);System.out.println("Input string ");String str = sc.nextLine();//用于输入字符串,按下回车终止System.out.println("Input n");n = sc.nextInt();// dataEncryption(str);dataDeciphering(str);}private static void dataDeciphering (String str) {List <Character>list = new ArrayList();for (int i = 0;i< str.length();i++){if (str.charAt(i)==' ')list.add(' ');elselist.add((char)(65+(((int)str.charAt(i)-65)+(26-n))%26));//补码}System.out.println("解密后明文为");say(list);}private static void say (List<Character> list) {for (char ch:list){System.out.print(ch);}}private static void dataEncryption (String str) {List <Character>list = new ArrayList();for (int i = 0;i< str.length();i++){if (str.charAt(i)==' ')list.add(' ');elselist.add( (char)(65+(((int)str.charAt(i)-65)+n)%26));}System.out.println("加密后密文为");say(list);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。