凯撒加密问题程序

设计思想:加密的过程是将字母在字母表中的位置向后移两位,即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 method stub

System.out.println("[A 加密 ] [J 解密],Please Choose One");

Scanner s=new Scanner(System.in);//创建Scanner对象

String s1=s.nextLine();//获取本行字符串

if (s1.equalsIgnoreCase("A"))//判断s1与A的大小

{

int key;

System.out.println("请输入明文:");

Scanner sc=new Scanner(System.in);

String ss=sc.nextLine();

System.out.println("请输入密钥:");

Scanner scc=new Scanner(System.in);

key=scc.nextInt();//将输入的字符转化成int型

Encryption(ss,key);//调用Encryption方法

}

else if(s1.equalsIgnoreCase("J"));

{

int key;

System.out.println("请输入密文:");

Scanner sc=new Scanner(System.in);

String ss =sc.nextLine();

System.out.println("请输入密钥:");

Scanner scc=new Scanner(System.in);

key=scc.nextInt();

Decrypt(ss,key);//调用Encryption方法

}

}

//加密程序

public static void Encryption(String str,int t)

{

String string="";

int i;

char c;

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

{

c=str.charAt(i);

if(c>=‘a‘&&c<=‘z‘)//如果字符中的某个字符是小写的

{

c+=t % 26;///移动26位

if(c<‘a‘)

c+=26;//向左超界

if(c>‘z‘)

c-=26;//向右超界

}

else if(c>=‘A‘&&c<=‘Z‘)//如果字符中的某个字符是大写的

{

c+=t % 26;

if(c<‘A‘)

c+=26;//向左超界

if(c>‘Z‘)

c-=26;//向右超界

}

string +=c;//将加密后的字符连成字符串

}

System.out.println(str +"加密后为:" + string);

}

public static void Decrypt(String str,int n)

{

int t;

t=Integer.parseInt("-" +n);

String string="";

int i;

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

{

char c=str.charAt(i);

if(c>=‘a‘&&c<=‘z‘)//如果字符中的某个字符是小写的

{

c+=t % 26;//移动26位

if(c<‘a‘)

c+=26;//向左超界

if(c>‘z‘)

c-=26;//向右超界

}

else if(c>=‘A‘&&c<=‘Z‘)//如果字符中的某个字符是大写的

{

c+=t % 26;

if(c<‘A‘)

c+=26;//向左超界

if(c>‘Z‘)

c-=26;//向右超界

}

string +=c;//将加密后的字符连成字符串

}

System.out.println(str +"解密后为:" + string);

}

}

截图:

时间: 2024-10-08 10:44:23

凯撒加密问题程序的相关文章

凯撒加密

一.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串 程序: 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字母移位)

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 pub

凯撒加密与解密实现

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

java程序——凯撒加密

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

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

【Java】凯撒加密及课后动手动脑

1.代码及运行结果 在Java中,内容相同的字串常量("Hello")只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. 编译器在编译s2一句时,会去掉"+"号,直接把两个字串连接起来得一个字串("Hello").这种优化工作由Java编译器自动完成. 当直接使用new关键字创建字符串对象时,虽然值一致(都是"Hello"),但仍然是两个独立的对象. 2.代码及运行结果 给字串变量赋值意味着:两个变量(s1,

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

凯撒加密(Julius Caesar)该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母代替.(如果超越了字母Z,会绕道字母表的起始位置.例如,如果每个字母都用字母表中两个位置之后的字母代替,那么Y就会被替换为A,Z就会被替换为B.) 然后编写程序………… 用户输入待加密的消息和移位数: 不是字母的不要改动………… #include <stdio.h> #include <string.h> int main() { char passwd[100],encrypted[

西普学院Crypto之凯撒是罗马共和国杰出的军事统帅

看题目大概可以知道是凯撒加密 密文:MGAKUZKRWZWGAWCP 我写了个程序遍历所有 有可能是答案的结果,代码如下: def echo(n): st="" b=True for i in s: if ord(i)+n in range(256): st+=chr(ord(i)+n) b=True else: b=False if b: print st s = raw_input() for i in range(-500,500): echo(i) 代码写得非常粗糙,没做处理什

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

原文:PHP脚本实现凯撒加(解)密 今天在看某ctf时候遇到一题凯撒加密的题,然后看到write up里有这样一句 顿时感觉这题目有点坑啊,这要不写个脚本来跑要推到啥时候啊,于是又了本文: 1 <?php 2 $text=" the text "; //需要解密的文本 3 echo $text."<hr>"; 4 for($j=0;$j<25;$j++) 5 { 6 for ($i=0;$i<strlen($text);$i++) 7