在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的,据称当年凯撒曾用此方法与其将军们进行联系。

凯撒密码通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。凯撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样,凯撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。

凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

    Finished dev [unoptimized + debuginfo] target(s) in 0.05sRunning `F:\learn\rustlearn\learn56\target\debug\learn56.exe`
源字符串: At MIT, pushing the boundaries of knowledge and possibility is our joyful obsession, and we celebrate fundamental discoveries and practical applications alike. As educators, we also value research as a potent form of learning by doing. Through MIT’s Undergraduate Research Opportunities Program (UROP(opens in new window)), more than 85% of undergraduates enrich their education through engaging in frontline, faculty-led research.
凯撒密码加密
加密结果:M€,YU`8,|tuzs,€tq,n{zpm~uq,{r,wz{ƒxqpsq,mzp,|{unuxu€
,u,{~,v{rx,{nqu{z8,mzp,ƒq,oqxqn~m€q,rzpmyqz€mx,puo{‚q~uq,mzp,|~mo€uomx,m||xuom€u{z,mxuwq:,M,qpom€{~8,ƒq,mx{,‚mxq,~qqm~ot,m,m,|{€qz€,r{~y,{r,xqm~zuzs,n
,p{uzs:,`t~{st,YU`%,azpq~s~mpm€q,^qqm~ot,[||{~€zu€uq,\~{s~my,4a^[\4{|qz,uz,zqƒ,ƒuzp{ƒ558,y{~q,€tmz,DA1,{r,zpq~s~mpm€q,qz~uot,€tqu~,qpom€u{z,€t~{st,qzsmsuzs,uz,r~{z€xuzq8,rmox€
9xqp,~qqm~ot:
凯撒密码解密
解密结果:At MIT, pushing the boundaries of knowledge and possibility is our joyful obsession, and we celebrate fundamental discoveries and practical applications alike. As educators, we also value research as a potent form of learning by doing. Through MITs Undergraduate Research Opportunities Program (UROP(opens in new window)), more than 85% of undergraduates enrich their education through engaging in frontline, faculty-led research.------------------
(program exited with code: 0)请按任意键继续. . .
use std::str;fn encrypt(s:&str,passwd:u8)->Vec<char>{let mut s_asc=Vec::new();for c in s.chars() {let mut ascii=c as u8;ascii=ascii+passwd;let c_new=ascii as char;s_asc.push(c_new);}s_asc
}
fn decrypt(s:String,passwd:u8)->Vec<char>{let mut s_asc=Vec::new();for c in s.chars() {let mut ascii=c as u8;ascii=ascii-passwd;let c_new=ascii as char;s_asc.push(c_new);}s_asc
}
fn main() {//&str是一个切片(&[u8]),它总是指向一个有效的UTF-8序列,并且可以用来查看String,就像&[T]是Vec的一个视图一样// 对只读内存中分配的字符串的引用let str1: &'static str = "At MIT, pushing the boundaries of knowledge and possibility is our joyful obsession, and we celebrate fundamental discoveries and practical applications alike. As educators, we also value research as a potent form of learning by doing. Through MIT’s Undergraduate Research Opportunities Program (UROP(opens in new window)), more than 85% of undergraduates enrich their education through engaging in frontline, faculty-led research.";//let a = "abcdefghi";println!("源字符串: {}", str1);let password:u8=12;//密码// 凯撒密码,加密println!("凯撒密码加密");let  new_str1:Vec<char> = encrypt(&str1,password);let result_str1:String = new_str1.iter().collect();//   new_str1.reverse();println!("加密结果:{}",result_str1);   println!("凯撒密码解密");let new_str2:Vec<char> = decrypt(result_str1,password);let result_str2:String = new_str2.iter().collect();println!("解密结果:{}",result_str2);     }

rust(58)-凯撒密码相关推荐

  1. 关于凯撒密码加密特征值,base64加密shellcode并分离绕过杀软

    什么是shellcode? 在黑客攻击中,shellcode是一小段代码,用于利用软件漏洞作为有效载荷.它之所以被称为"shellcode",是因为它通常启动一个命令shell,攻 ...

  2. 凯撒密码中有数字怎么办_【论链】浅谈量子计算与区块链中的密码安全

    来源:武谷论链 作者:尤浩量子力学博士 以下是尤浩博士链导讲堂分享记录: 任正非专访 任正非专访 任正非专访 任正非专访 任正非最新采访:区块链在量子计算面前一钱不值 (2019-11-06) 任正非 ...

  3. python凯撒密码详解_Python基础题目集--课堂案例

    这些案例均为在校期间学习<python基础编程>课程的案例,适合初学者练手~ 1.输入分数,返回等级 ''' 分数区间为0~100,等级:A(>=90).B(>=80).C(& ...

  4. 凯撒密码C语言去掉空格字符,凯撒密码的问题C语言

    满意答案 xlaijing19 推荐于 2016.04.01 采纳率:43%    等级:12 已帮助:6257人 最低0.27元开通文库会员,查看完整内容> 原发布者:耿万德 凯撒密码是一种非 ...

  5. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  6. CTF-不一样的凯撒密码

    呀呼 首先先了解一下正常的凯撒密码, 它的原理是把字母向后移位; 思路 不一样的凯撒的话就要把他们转化成ASC码来推导; 拿这次省赛的一个题目来说吧; 下载好文件 打开: bhag{asb_zsz_v ...

  7. 《Python游戏编程快速上手》第十四章----凯撒密码

    <Python游戏编程快速上手>的第十二章主要讲了笛卡尔坐标系的基本数学知识,我就不重现了:然后第十三章主要是一个笛卡尔坐标系的小应用,这个小应用也是非常简单的,所以我就不重现了. 今天主 ...

  8. 密码学入门1——凯撒密码和三重DES加解密

    实验目的 1.完成第一个入门加解密--凯撒密码 2.完成当下较为流行的三重DES加解密技术 3.熟悉所学的实际运用方向 实验准备 硬件:计算机或笔记本电脑 操作系统:Mac操作系统 IDE环境:Ecl ...

  9. 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)

    凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...

最新文章

  1. Nature封面,硅量子计算达到99%的准确率
  2. 如何导出项目到本地_【点滴故事】:如何做项目本地化?
  3. Creating a Jabber Client using the agsXMPP Library
  4. redhat linux创建磁盘分区,redhat6.4 挂载硬盘,创建新分区,删除分区
  5. 三角形一点到三边距离最小_高中数学:利用正弦定理、余弦定理求解三角形基础题...
  6. python查询在查询_python 查询,子查询以及1对多查询
  7. Android学习笔记36:使用SQLite方式存储数据
  8. 【性能优化】 之10046 事件
  9. python画平面直角坐标系_Python之OpenGL笔记(20):画平面直角坐标系
  10. 构建Squid代理服务器-传统代理、透明代理、反向代理
  11. python算法实现源码_Python实现七个基本算法
  12. mpandroidchart 设置x轴数据_Flowjo软件下的流式数据基本分析
  13. jquery中ajax请求分类
  14. 第18次Scrum会议(10/30)【欢迎来怼】
  15. 5个 GIS空间分析 空间查询与量算 的重要知识点
  16. 【C补充】指向指针或函数的指针
  17. 丢失数据文件和控制文件的恢复案例(zt)
  18. MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值
  19. Pytorch3d中的倒角损失函数Chamfer Distance Loss的用法(pytorch3d.loss.chamfer_distance)
  20. python3 jason 、pickle 和cpickle

热门文章

  1. 神奇的幻方(NOIP2015)(真·纯模拟)
  2. UNIX环境高级编程 文件I/O
  3. C/C++ 位操作 总结
  4. Format函数用法
  5. IDEA修改Servlet的代码生成模板
  6. CF1155D Beautiful Array 贪心,dp
  7. 查询反模式 - 隐式的列
  8. 《转载》POI导出excel日期格式
  9. 【VS开发】PCIe体系结构的组成部件
  10. 【转载】OmniGraffle (四)化繁为简