位移密码加密、解密matlab实现

密码学:位移密码加密、解密matlab实现

一、matlab实现:自定义函数

function text=trans_cipher(strText,operation,key)
%%%   对明(密)文采用位移密码进行加(解)密;
%%%   明文(密文):strText  (字符串形式!!!);
%%%   操作方式: operation  (加密:‘encrypt’
                        ... 解密: 'decrypt' ),二选一;
%%%   密钥:key。

strText=upper(strText);
n=length(strText);
if operation =='encrypt'& nargin==3   %% 加密

    for i=1:n
        strText(i)=char(65+mod(strText(i)-65+key,26));
    end
    text=strText;
elseif operation =='decrypt'& nargin==3    %% 解密
    for i=1:n
        strText(i)=char(65+mod(strText(i)-65-key,26));
    end
    text=strText;
elseif operation =='decrypt'& nargin==2      %% 遍历穷尽解密(key未知)
    text=cell(26,2);
    for j=1:26
       for i=1:length(strText)
          strText(i)=char(65+mod(strText(i)-66,26));
       end
       text{j,1}=j;
       text{j,2}=strText;
    end
else    %% 其他情况,增强程序鲁棒性
    disp('参数输入错误,请检查后重试')
end
end

二、实例验证

例1:

篱落成殇

例2:

在这里插入图片描述

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ouifbcyjvz2w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篱落~~成殇~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值