Caesar(恺撒)密码加密解密-----Java实现
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实现相关推荐
- 凯撒密码加密解密——Java代码(密码学)
凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...
- JavaScript实现恺撒密码加密/解密
//仅限英文 // 加密 function encrypt(str, num) {var outStr = "";//循环处理字符串每一个字母for (let i = 0; i & ...
- 凯撒密码加密解密C语言详细代码
凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...
- C++实现古典密码-凯撒密码加密解密算法
文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...
- 恺撒密码加解密程序(Python)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.确定恺撒密码原理,用公式表示 二.子函数的确立 1.加密部分 2.解密部分 3.选择加密还是解密 三.确定各个子函 ...
- C++凯撒密码加密解密算法
一.算法描述 凯撒密码的加密解密算法,逻辑很简单,就是两个公式: 比如说下面这个例子的加密解密公式,就是位移量为3时的结果 加密公式 f(a)=(a+3) mod 26 解密公式 f(a)=(a+23 ...
- 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) ...
- Python编程:实现凯撒密码加密解密
凯撒密码 原理: 通过把字母移动一定的位数来实现加解密 明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文. 例如: 当步长为3时,A被替换成D,B被替换成E,依此类推,X替 ...
- Matlab凯撒密码加密解密
Pratice problem: Bob wants to send the message "Start sending messages at 8:30" to Alice i ...
最新文章
- 「杂谈」如何写好R语言apply家族函数
- WindowsServer2003双网卡配置
- java代码块执行顺序_Java笔记 | Java代码块执行顺序测试
- MyBatisPlus中自定义全局操作流程
- Daily Report 2012.11.9 刘宇翔
- 安装MySQL-python报错 error: command 'gcc' failed with exit status 1解决方法
- 【暴力】Codeforces Round #398 (Div. 2) A. Snacktower
- 2018蓝桥杯省赛---java---C---7(缩位求和)
- 计算机英文版个人简历发文,计算机个人简历英文_英文简历.doc
- php角色权限安全,php – 安全的chmod权限?
- Effective C++ 读后感
- 取得浏览器当前鼠标的X,Y坐标的JavaScript脚本及document元素的一些重要属性
- mybatis一个怪异的问题: Invalid bound statement (not found)
- oracle Lpad()函数和Rpad()函数的用法
- 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
- Awvs 12.x安装教程及常见问题
- 爬虫-3-requests和代理
- 美国高防服务器:恒讯科技为您解答TCP/IP的攻击原理
- extern、struct等关键字
- 六、图(上):六度空间