字符表示和转换
1.字符表示:用单引号表示:str='你好'
2.使用下标访问:str(1),str(end),str(end-1)
3.使用冒号获得序列:str(1:3)
4.字符串拼接:[str1 str2 str3
5.字符表示:msg=char('Hello','world')
6.字符矩阵大小:size(msg)
7.数字转字符:int2str(123),int2str(123.65)
8.数字转字符:num2str(pi,5),num2str(0.12313131,3)
9.字符转ASCII值:double('X')---88
10.ASCII转字符:char(97)---'a'
加密解密操作
>>or_msg='张xx是一名杀手';
asso=double(or_msg);
coded_msg=asso.^pi+1024;
solve=(coded_msg-1024).^(1/pi);
or_remsg=char(solve)
or_remsg =
'张xx是一名杀手'
function [Coded_message,lower_limit,upper_limit] = encode_rand(original_message,coding_integer)
% 该程序进行基础加密
% 输入参数:original_message代表原文,coding_integer代表用来加密的随机数生成器种子
%返回值:Coded_message表示加密的密文,lower_limit和upper_limit表示数值上下限
% 字符转为数字
associated_array = double(original_message);
%进行pi次幂运算
new_array = associated_array.^(pi);
%求最小最大值
min_new_array = min(min(new_array));
max_new_array = max(max(new_array));
%计算上限下限和差值
lower_limit = round(min_new_array);
upper_limit = round(max_new_array);
difference = upper_limit - lower_limit;
%使用随机数生成器生成随机数
rng(coding_integer)
random_numbers = lower_limit + difference*rand(size(original_message));
%添加随机数
converted_array = new_array + random_numbers;
%获得加密密文
Coded_message = converted_array';
end
function message=decode_rand(coded_msg,coding_num,lower_limit,upper_limit)
% 该程序进行解密操作
% 输入参数:coded_msg表示已加密的密文,coding_num表示随机数生成器使用的种子,lower_limit和upper_limit表示数值上下限
%返回值是解密的密文
converted_array=coded_msg';
difference = upper_limit - lower_limit;
rng(coding_num);
rand_num = lower_limit + difference*rand(size(coded_msg'));
new_array=converted_array-rand_num;
associated_array=new_array.^(1/pi);
associated_array=round(associated_array);
message=char(associated_array);
end