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