凯撒密码

凯撒密码:

古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符

原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

     ----------------------------------------------------------------------------------------------------

算法实现:

function Y=caesarCode(plaintext, shift)
chars = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n',...
      'o','p','q','r','s','t','u','v','w','x','y','z'];
L=length(plaintext);
for i=1:L
      for j=1:26
          if plaintext(i)==chars(j)
              k=mod(j+shift,26);
              if k~= 0
                  Y(i)=chars(k);
              else
                  Y(i)=chars(26);
              end
          end
      end
end

 plaintext:纯文本,指用二进制编码表示字符的一种文件。

shift:实现数据转移的函数。

chars:表示字符类型。

length:是用于计算、元组、字符串、字典等数据类型中元素的个数。

for ()in ():第一个括号是变量名;第二个是可迭代对象。

mod:取模运算符。取模:除数符号是什么,得数符号就是什么。

                                取余:被除数符号是什么,得数符号就是什么。

---------------------------------------------------------------------------------------------------------------------------------

例题

如果明文信息为‘cryptoisfun’,使用凯撒加密算法,且密钥为25,那么加密的结果是?请选择!

a. dszqupjtgvo

b. bqxosnhretm

c. tyxpbqmgien

d. none of the above 

>> caesarCode('cryptoisfun',25)
ans =
bqxosnhretm

  向左移25,及出现答案bqxosnhretm,故选b。

总结 凯撒密码是古典密码的一种,为单表代替密码,可是安全性不高容易暴力破解。             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值