首页 > 其他分享 >凯撒密码编码实验

凯撒密码编码实验

时间:2023-05-21 20:56:15浏览次数:32  
标签:编码 加密 解密 密码 密钥 凯撒 输入

【实验目的】

掌握凯撒密码的原理和编程实现过程以及古典密码凯撒密码的应用。

【知识点】

凯撒密码

【实验原理】

凯撒密码原理:

明文:={英文字符号串}密钥:=key取{0,1,2,...,25}中任一个数字加密c(i):=[m(i)+keymod26]解密m(i):=[c(i)-keymod26]

【软件工具】

操作系统:Centos7

其他:Python3

【实验目标】

查看凯撒密码的源码,执行程序,并使用凯撒密码进行加密和解密,分析安全性。

【实验步骤】

凯撒密码加密过程:对字母表中的每个字母,用它之后的第n个字母来代换。字母表为明文输入内容,第n个字母为密钥。当密钥为3时,加密后的字母如下图所示:

image

凯撒密码解密过程:解密过程则和加密过程相反,用之前的第n个字母来代换。登录系统后,查看到目录"/root/cryptography/"下有个"caesar.py"文件。编辑查看"caesar.py"文件,输入命令vimcaesar.py。image

image

查看源码,理解凯撒密码的原理。

执行程序,并使用凯撒密码进行加密和解密。保存并退出,执行程序,输入命令python3caesar.py。

image

进行测试程序是否能实现凯撒密码加密,得到所要的密文:输入1选择加密,输入秘钥4,它会根据你所输入的密钥加密成对应的密文,不同的密钥,加密出来的密文也是不同的。输入明文hello。进行测试程序是否能实现凯撒密码解密,得到所要的明文:

image

输入2选择解密,输入秘钥4,它会根据你所输入的密钥加密成对应的密文,不同的密钥,解密出来的密文也是不同的。输入密文lipps。

image

标签:编码,加密,解密,密码,密钥,凯撒,输入
From: https://www.cnblogs.com/magicfat/p/17417873.html

相关文章

  • Day 41 41.3 URL 解码 编码详解
    【一】URL解码/编码详解当URL路径或者查询参数中,带有中文或者特殊字符的时候,就需要对URL进行编码(采用十六进制编码格式)。URL编码的原则是使用安全字符去表示那些不安全的字符。安全字符,指的是没有特殊用途或者特殊意义的字符。【二】URL基本组成URL是由一些简单的......
  • OpenEuler忘记root密码,CentOS通用
    1.开机,在自动启动之前按“E”进入如下界面:2.移动光标至此处,在末尾写入:init=/bin/sh如图:3.按ctrl+X,开始刷屏4.先输入:mount-oremount,rw/然后输入passwd接下来即可重新设置密码5.显示密码设置成功后,输入如下两条指令:touch/.autorelabelexec/sbin/init6......
  • vue中输入密码带图标可见不可见切换
    data(){return{userName:"",pswd:"",loginDisabled:false,labelPosition:"top",passwordType:'password',passwordIcon:require('@m/assets/images/bukejian.png')......
  • .NET UTF-8与UTF-8-BOM编码
    MSDoc:UTF8Encoding类BOM与错误检测参数成员BOM错误检测Encoding.UTF8是无(替换回退)UTF8Encoding.UTF8Encoding()否无(替换回退)UTF8Encoding.UTF8Encoding(Boolean)可配置无(替换回退)UTF8Encoding.UTF8Encoding(Boolean,Boolean)可配置可配置......
  • 锐捷三层交换机密码重置操作日志
       近来拿到了一台已经下架的三层交换机,想着拿来练手,做拓展WAN使用,用xshell连接交换机,发现设备有帐号密码的。然后就开始的百度重置交换机的方法:   看到这个教程,实际操作的时候,发现第一步都进不去,换了连接软件,各种方法测试过很多次,都没有用,还是进不去,只能重新找其它的......
  • Linux SSH服务器拒绝了密码,请再输入一次(解决方法)
    1.在Linux终端输入sudovim/etc/ssh/sshd_config2.按i进入编辑模式,修改配置文件,找到Authentication所在位置,修改成如下所示取消这四条的注释LoginGraceTime2m            #登陆时间PermitRootLoginyes           #允许roo......
  • 基于状态机STM32/51密码锁
    1、状态机讲解状态机其实在学习数字电路的接触过但是我已经忘得差不多了,由于我的毕业设计是关于FPGA的题目,状态机是重中之重。刚才在贴吧有uu们问关于单片机之类的密码锁的问题,突然想到之前蓝桥杯当时也有类似的题目,我当时处理的不是特别好,所以现在想着用C去实现,本科毕设时我导师......
  • Centos 设置密钥登陆并禁用密码
    1:备份文件cd/etc/ssh/scpsshd_configsshd_config.bak2:生成密钥一路回车按下去就可以了。[root@centos7-1ssh]#ssh-keygen-trsaGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):#回车Createddirectory'/root/.ssh......
  • redis实现生成自增编码两种方式
    redis实现生成自增编码两种方式文章目录 https://blog.csdn.net/MS_SONG/article/details/130226992方式一方式二生成编码时处理并发+事务实际场景 思路:都是从缓存中取,取出来+1再放入缓存,以便下次取用区别:方式一,手动+1;方式二:利用redis.increment实现自增;提示:写......
  • Java编程进阶:掌握这五个高级特性让编码更得心应手
    当今,在软件开发中最流行和使用最广泛的语言之一是Java。Java不仅是一种面向对象的编程语言,还可以用于Web开发、移动应用程序编程、云计算和大数据处理。如果你是一个初学者,或者是想要进一步了解Java编程的高级特性,那么这篇文章会帮助你更好地了解Java编程。一、使用lambda表达式在J......