Caesar密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换表如1-1所示。

表1-1  Caesar置换表

a

b

c

d

e

f

g

h

i

j

k

l

m

A

B

C

D

E

F

G

H

I

J

K

L

M

n

o

p

q

r

s

t

u

v

w

x

y

z

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

加密时每一个字母向前推移k位,例如当k=5时,置换表如1-2所示。

表1-2  Caesar置换表

a

b

c

d

e

f

g

h

i

j

k

l

m

F

G

H

I

J

K

L

M

N

O

P

Q

R

n

o

p

q

r

s

t

u

v

w

x

y

z

S

T

U

V

W

X

Y

Z

A

B

C

D

E

于是对于明文:data security has evolved rapidly

经过加密后就可以得到密文:IFYF XJHZWNYD MFX JATQAJI WFUNIQD

加密核心代码:

for (int i = 0; i < s.length(); i++) {if(str[i] >= 'a' && str[i] <= 'z')//小写字母str[i]=(char)((str[i]+n-97)%26+97);else str[i]=(char)((str[i]+n-65)%26+65);//大写字母}

调试结果:

解密核心代码:

for (int i = 0; i < s.length(); i++) {if (str[i] >= 'a' && str[i] <= 'z')//小写字母str[i] = (char) ((str[i] - 97 + 26 - n) % 26 + 97);else //大写字母str[i] = (char) ((str[i] - 65 + 26 - n) % 26 + 65);}

调试结果:

因为有的地方写的不是很严谨就不放出来了~(比如输入的不是英文而是其他字符,该做什么判断这些我都没写~)简单完成一下我们法根老师的实验吧哈哈

想要所有代码可以私信我 看见就回复~

Caesar(恺撒)密码加密解密-----Java实现相关推荐

  1. 凯撒密码加密解密——Java代码(密码学)

    凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  2. JavaScript实现恺撒密码加密/解密

    //仅限英文 // 加密 function encrypt(str, num) {var outStr = "";//循环处理字符串每一个字母for (let i = 0; i & ...

  3. 凯撒密码加密解密C语言详细代码

    凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...

  4. C++实现古典密码-凯撒密码加密解密算法

    文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...

  5. 恺撒密码加解密程序(Python)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.确定恺撒密码原理,用公式表示 二.子函数的确立 1.加密部分 2.解密部分 3.选择加密还是解密 三.确定各个子函 ...

  6. C++凯撒密码加密解密算法

    一.算法描述 凯撒密码的加密解密算法,逻辑很简单,就是两个公式: 比如说下面这个例子的加密解密公式,就是位移量为3时的结果 加密公式 f(a)=(a+3) mod 26 解密公式 f(a)=(a+23 ...

  7. 2.凯撒密码加密解密(C)

    明文空间M.密文空间C都是和密钥空间K满足,M=C=K={0,1,2,-,25}=Z_26 ,即把26个英文字母与整数0,1,2,-,25一一对应. 加密变换,E={E:Z26→Z26, Ek (m) ...

  8. Python编程:实现凯撒密码加密解密

    凯撒密码 原理: 通过把字母移动一定的位数来实现加解密 明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文. 例如: 当步长为3时,A被替换成D,B被替换成E,依此类推,X替 ...

  9. Matlab凯撒密码加密解密

    Pratice problem: Bob wants to send the message "Start sending messages at 8:30" to Alice i ...

最新文章

  1. 「杂谈」如何写好R语言apply家族函数
  2. WindowsServer2003双网卡配置
  3. java代码块执行顺序_Java笔记 | Java代码块执行顺序测试
  4. MyBatisPlus中自定义全局操作流程
  5. Daily Report 2012.11.9 刘宇翔
  6. 安装MySQL-python报错 error: command 'gcc' failed with exit status 1解决方法
  7. 【暴力】Codeforces Round #398 (Div. 2) A. Snacktower
  8. 2018蓝桥杯省赛---java---C---7(缩位求和)
  9. 计算机英文版个人简历发文,计算机个人简历英文_英文简历.doc
  10. php角色权限安全,php – 安全的chmod权限?
  11. Effective C++ 读后感
  12. 取得浏览器当前鼠标的X,Y坐标的JavaScript脚本及document元素的一些重要属性
  13. mybatis一个怪异的问题: Invalid bound statement (not found)
  14. oracle Lpad()函数和Rpad()函数的用法
  15. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  16. Awvs 12.x安装教程及常见问题
  17. 爬虫-3-requests和代理
  18. 美国高防服务器:恒讯科技为您解答TCP/IP的攻击原理
  19. extern、struct等关键字
  20. 六、图(上):六度空间

热门文章

  1. 状态压缩动态规划部分习题详解
  2. (CSP2019模拟)DTOJ 4650. 暗雪
  3. latex | 表格竖线被截断 、表格中文字靠近上方
  4. 雷神的微软平台安全宝典:使用源端口访问规则来限制访问
  5. 初始化springboot项目
  6. 入手评测 r5 7530u和 r7 6800h差距 锐龙r57530u和r76800h对比
  7. 秋招面经—C++后端
  8. 公司设备换新,哪家智能会议平板好?
  9. 开源b2b2c多用户商城系统具有的优势
  10. 2020年Java全新学习路线,学完可以达到JAVA中级工程师水平