位移密码加密、解密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:

位移密码加密、解密matlab实现_第1张图片

例2:

在这里插入图片描述

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

你可能感兴趣的:(密码学)