恺撒加密简记

article/2025/9/24 20:38:03

恺撒加密简记

    • 介绍
    • 代码如下
    • 参考链接

介绍

恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是2的时候,所有的字母A将被替换成C,B变成D,以此类推。
示意图
因此,假如有个明文字符串“Hello”用这种方法加密的话,将变为密文: “Jgnnq” 。而如果要解密,则只要将字母向相反方向移动同样位数即可。如密文“Jgnnq”每个字母左移两位 变为“Hello” 。这里,移动的位数“2”是加密和解密所用的密钥。
使用公式定义,就是当秘钥为n,其中一个待加密字符ch,加密之后的字符为ch+n,当ch+n超过’z’时,回到’a’计数
凯撒密码的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,…,Z=25。此时偏移量为n的加密方法即为:
E n ( x ) = ( x + n ) m o d 26 E_n(x)=(x+n)\qquad mod \ 26 En(x)=(x+n)mod 26
解密就是:
D n ( x ) = ( x − n ) m o d 26 D_n(x)=(x-n) \qquad mod \ 26 Dn(x)=(xn)mod 26
根据偏移量的不同,还存在若干特定的恺撒密码名称:

  • 偏移量为 10:Avocat (A→K)
  • 偏移量为 13:ROT13
  • 偏移量为 -5:Cassis (K 6)
  • 偏移量为 -6:Cassette (K 7)

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

代码如下

这里是使用凯撒密码,对Unity中的资源进行加密解密,所以使用了Unity的资源加载类UnityWebRequestWWW,以及协程,但这并不影响对加密解密的理解。

/// <summary>
/// 恺撒加密
/// </summary>
/// <returns></returns>
private IEnumerator EncryptionAB()
{byte[] bytes = null;UnityWebRequest request = new UnityWebRequest("file:///D:\\fcj\\unity2018\\VuforiaStudy\\BuildAssetBundle\\Window\\myab");yield return request.SendWebRequest();if (request.isDone && request.error == null)bytes = request.downloadHandler.data;//WWW www = new WWW("file:///D:\\fcj\\unity2018\\VuforiaStudy\\BuildAssetBundle\\Window\\myab");//yield return www;//if (www.isDone && www.error == null)//    bytes = www.bytes;for (int i = 0; i < bytes.Length; i++)//恺撒加密{bytes[i] += 1;}File.WriteAllBytes("D:\\fcj\\unity2018\\VuforiaStudy\\BuildAssetBundle\\Window\\myab_Encryption.assetbundle", bytes);
}
/// <summary>
/// 恺撒解密
/// </summary>
/// <returns></returns>
private IEnumerator DecryptAB()
{byte[] bytes = null;UnityWebRequest request = new UnityWebRequest("file:///D:\\fcj\\unity2018\\VuforiaStudy\\BuildAssetBundle\\Window\\myab_Encryption.assetbundle");yield return request.SendWebRequest();if (request.isDone && request.error == null)bytes = request.downloadHandler.data;//WWW www = new WWW("file:///D:\\fcj\\unity2018\\VuforiaStudy\\BuildAssetBundle\\Window\\myab_Encryption.assetbundle");//yield return www;//if (www.isDone && www.error == null)//    bytes = www.bytes;for (int i = 0; i < bytes.Length; i++)//恺撒解密{bytes[i] -= 1;}AssetBundle ab = AssetBundle.LoadFromMemory(bytes);GameObject go = ab.LoadAsset("Sphere") as GameObject;//注意这里是预制体名字Instantiate(go, Vector3.zero, Quaternion.identity);ab.Unload(false);
}

参考链接

  1. https://www.jianshu.com/p/647300d9938a
  2. https://blog.csdn.net/weixin_39766005/article/details/103897726
  3. https://www.cnblogs.com/Mayfly-nymph/p/11577798.html

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

相关文章

凯撒密码(移位加密)

简介&#xff1a; 移位加密是一种古典的替换加密技术&#xff0c;明文中的所有字母都在字母表上向后&#xff08;或向前&#xff09;按照一个固定数目进行偏移后被替换成密文。 例如&#xff1a;当偏移量是3的时候&#xff0c;所有的字母A将被替换成D&#xff0c;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 刚看到需要解密的文本&#xff0c;就觉得它很像移位密码&#xff0c;于是开始试了一下。 源代码&#xff1a; 求最大公因数&#xff1a;Arithmetic.java public class Arit…

移位密码(凯撒密码)

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

凯撒密码(移位密码)

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

大端模式和小端模式

一.概念 大端模式&#xff08;Big-endian&#xff09;&#xff1a;高位字节排放在内存的低地址端&#xff0c;低位字节排放在内存的高地址端&#xff0c;即正序排列&#xff0c;高尾端&#xff1b; 小端模式&#xff08;Little-endian&#xff09;&#xff1a;低位字节排放在…

数据存储:大端和小端

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

大端和小端传输字节序

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

大端字节序和小端字节序

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

简单理解大端小端

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

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

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

存储模型:大端和小端

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

操作系统之大端小端

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

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

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

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

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

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

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

大端小端详解

转载&#xff1a;大端小端详解 1>"大端" "小端"的来源 关于大端小端名词的由来&#xff0c;网传有一个有趣的故事&#xff0c;可以追溯到1726年的Jonathan Swift的《格列佛游记》&#xff0c;其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端…

大端序发送数据

需要发送数字 151510 大端序发送就是 &#xff1a;00 02 4F D6 string smallData textBox1.Text;//小端数据if (smallData ""){MessageBox.Show("请输入初始里程", "错误",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);textBox1.Text …

c语言之大端小端问题

这就是字节序问题&#xff1a;数据在计算机内存中存储或者网络传输时各字节的存储顺序 通常来说就分为两种情况&#xff1a; 一种是大端(big-endian)&#xff1a;高字节(高位)存放在低地址&#xff0c;低字节(低位)存在高地址 另外一种小端(little-endian)&#xff1a;高位存放…

数据存储:大端小端

文章目录 问题起源大端小端大端小端优劣符合人类阅读方式数据类型转换符号位的识别 参考资料 曾经辨析和了解过大端小端&#xff0c;但是到了实际应用中还是比较模糊。整理一些资料文章&#xff0c;在此记录。 问题起源 在计算机的使用以及现代很多的嵌入式设备中&#xff0c;…