我是靠谱客的博主 老迟到鞋垫,这篇文章主要介绍凯撒密码matlab代码,凯撒密码(Caesar's code),现在分享给大家,希望可以做个参考。

简介

凯撒密码(Caesar's code)作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。

780e20aef4bd

ASCII表

780e20aef4bd

实现凯撒密码算法核心在下面

加密

C=E(p)=(p+3) mod 26

C=E(p)=(p+k) mod 26

假设p为需要加密的字母,位数3就是加密解密的密钥,可以参照上面的图表

解密

p=D(C)=(C-k) mod 26

算法实现

先设一个对照表,然后用两个函数实现加密 解密,加密函数传入需要加密的明文和位数,解密函数传入需要解密的密文和位数

letter_list='ABCDEFGHIJKLMNOPQRSTUVWXYZ';

def Encrypt(plaintext,key):

ciphertext = ''

for i in plaintext:

if i.isalpha():

if i.isupper():

ciphertext += letter_list[(ord(i)-65+key)%26]

else:

ciphertext += letter_list[(ord(i)-97+key)%26]

else:

ciphertext += i

return ciphertext

def Decrypt(ciphertext,key):

plaintext=''

for i in ciphertext: #遍历明文

if i.isalpha(): #判断是否为字母

if i.isupper():

#明文是否为字母,如果是,判断大小写,分别用ASCII进行加密

plaintext += letter_list[(ord(i)-65+key)%26]

else:

#如果是小写,需要转成小写,因为letter_list中都是大写

plaintext += letter_list[(ord(i)-97+key)%26]

else:

#如果不为字母,直接添加到密文字符里

plaintext += i

return ciphertext

最后

以上就是老迟到鞋垫最近收集整理的关于凯撒密码matlab代码,凯撒密码(Caesar's code)的全部内容,更多相关凯撒密码matlab代码,凯撒密码(Caesar's内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部