凯撒加密

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

程序:

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():

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

时间: 2024-10-22 09:04:24

凯撒加密的相关文章

凯撒加密解密(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,

凯撒加密问题程序

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

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