应用密码学:位移密码极简(凯撒密码)

article/2025/9/24 20:07:21

应用密码学:位移密码极简

位移密码、凯撒密码(K=3)


目录

  • 应用密码学:位移密码极简
  • 原理
  • 加密
  • 解密


原理

根据字母映射表将26个字母转换为整数0-25且逐一对应,如下表
在这里插入图片描述
根据映射表将明文转换为数字,再整体向前或向后移动固定位数,将移动位数后的数字根据同一引射表,再转换为字母,就完成了加密。


加密

加密变换 c = m + k (mod 26)

我们设定密钥k=3(经典的凯撒密码),使用位移加密的方法来加密一段明文
例如:
明文为:my name is yg

加密过程:字母m根据上面的映射表转换为整数12, 密钥k=3,所以12+3=15,对整数15取26的余数 15(mod 26) = 15,最后将整数15根据映射表转换为字母P

以此类推:
E~3~ (m)= E~3~ (12)= 12+3(mod 26)= 15,对应字母为P
E~3~ (y)= E~3~ (24)= 24+3(mod 26)= 1,对应字母为b
……

最终的到密文为:pb qdoh lv bj


解密

知道密钥k=3及对应的字母映射表时,

解密变换 m = c - k (mod 26)

例如:
密文为:pb qdoh lv bj

解密过程:字母p根据上面的映射表转换为整数15, 密钥k=3,所以15-3=12,对整数12取26的余数 12(mod 26) = 12,最后将整数12根据映射表转换为字母m

以此类推:
E~3~ (p)= E~3~ (15)= 15-3(mod 26)= 12,对应字母为m	     //这里注意15-3=12,然后再对12进行26的求余
E~3~ (b)= E~3~ (1)= 1-3(mod 26)= 24,对应字母为y        //这里注意1-3=-2,然后再对-2进行26的求余

最终得到明文为:my name is yg


http://chatgpt.dhexx.cn/article/lHPSTcoO.shtml

相关文章

密码学笔记——凯撒密码

凯撒密码 简介 凯撒密码是使用的单表代换,相信大家在平时接触过凯撒密码的在线加密解密,既然接触过,那肯定见到过”偏移量“这个字眼,下面就通俗说一下: 凯撒密码的基本原理就是把一个字母通过移动一定的位数变成另…

python基础编程小实例4——恺撒密码

编程语言:python3.9 题目 恺撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D&#xff0…

使用java语言实现移位密码加密过程

使用java语言实现移位密码加密过程 一、凯撒密码(移位密码)二、运行软件三、代码1.加密2.解密3.运行四、运行结果1.加密结果2.解密结果一、凯撒密码(移位密码) 在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知…

恺撒加密简记

恺撒加密简记 介绍代码如下参考链接 介绍 恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向…

凯撒密码(移位加密)

简介: 移位加密是一种古典的替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 例如:当偏移量是3的时候,所有的字母A将被替换成D,B替换成E&…

C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)

1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出。解密就是将字符数据转化为ASC码表中的数字,d—z之间通过减去3之后再转化为字符型输出,a—c之间通过转化为ASC…

古典恺撒移位密码破解

1. cipher text bmjs dtz uqfd ymj lfrj tk ymwtsjx dtz bns tw dtz inj ymjwj nx st rniiqj lwtzsi 刚看到需要解密的文本,就觉得它很像移位密码,于是开始试了一下。 源代码: 求最大公因数:Arithmetic.java public class Arit…

移位密码(凯撒密码)

一、移位密码(凯撒密码) 移位密码是一种简单的加密方法,它通过将明文中的每个字符按照一定规则向左或向右移动若干位来生成密文。移位密码通常使用偏移量来确定每个字符移动的位数。 二、加密解密 1. 移位加密 移位加密算法将明文中的每个字符按照一定规则向左或…

凯撒密码(移位密码)

凯撒密码(移位密码) 移位密码是一种古典密码,实际上是替换密码的一个特例,它有很严格的数学定义 // 移位密码 import java.util.Scanner;public class Caesar {public static void main(String[] args) {System.out.println(&q…

大端模式和小端模式

一.概念 大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端; 小端模式(Little-endian):低位字节排放在…

数据存储:大端和小端

目录 字节序 大端和小端 大端小端测试 写入测试 字节码文件的大小端 前面说到,像C/C这类语言编写的程序,它们被编译后,直接转换成了对应平台上的可被CPU直接运行的机器指令,转换之后,原本语言中的数据结构&#x…

大端和小端传输字节序

大端和小端 在计算机中是以字节为单位,每一个地址对应一个字节,一个字节8bit。在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过si…

大端字节序和小端字节序

字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。 -- 转自:字节序_百度百科 (baidu.com) 在几乎所有的平台上,多字节对象都被存储为连续的字节序列。例如在 C 语言中,一…

简单理解大端小端

大端和小端是计算机写内存的习惯。就如人类写文章时的顺序一般,现代人从左往右,古人却是竖书成行(自上而下写满一行后,再自右向左换行。);有些计算机规定从左往右写内存,有些规定从右往左写内存…

java 为什么用大端_Java中的大端和小端

Java整型的字节序是() A.Little-Endian(小端) B.Big-Endian(大端) C.由运行程序的CPU决定 D.由编译程序的CPU决定 对于大小端,我估计肯定有很多开发人员跟我一样都没听过 由于Java是跨平台的,JVM为我们屏蔽了大量的底层细节和复杂性,导致在平…

存储模型:大端和小端

前言: 计算机操作系统中存储信息都是以字节为单位,每个地址单元对应 1 个字节。 1 个字节为 8 bits,对于某些32 位处理器而言,char类型数据占用 1 个字节的空间,short 占用2个字节,int 占用4个字节。而这…

操作系统之大端小端

1. 什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地…

二进制、16进制、大端小端

16进制的使用 在开发过程中,写文件是常有的事,如果写的内容是文本,随便用一个记事本软件打开即可查看内容是否正确,如果写的是音频文件,就要用音频播放器来查看,如果是视频文件,就要用视频播放…

网络传输大端序_大端、小端与网络字节序

大端(Big-Endian),小端(Little-Endian)以及网络字节序的概念在编程中经常会遇到。网络字节序(Network Byte Order)一般是指大端(Big-Endian,对大部分网络传输协议而言)传输,大端小端的概念是面向多字节数据类型的存储方式定义的,小…

677-大端模式和小端模式详解

1、大端和小端核心是什么? 大端模式和小端是实际的字节顺序和存储的地址顺序对应关系的两种模式,总结如下: 大端模式:低地址对应高字节 小端模式:低地址对应低字节 不管是大端还是小端模式,我们在读取和存…