您的位置:首页 > 编程语言 > MATLAB

用MATLAB的GUI实现文本的简单加密原理

2008-07-11 14:52 579 查看
用MATLAB实现文本内容简单加密的原理很简单,就是将文本文件中的文字的ASCII码按一定的算法转换成一组似乎毫无意义的代码。要解密时只要将这些代码做该算法的逆运算,并转换成字符显示出来就行。原理就这样,是不是很简单呢?这里仅提供简单的算法实例:

加密:

function ToCode_pushbutton_Callback(hObject, eventdata, handles)

%ToCode_pushbutton为按钮的Tag

ra=fix(mean(double(get(handles.op_edit,'string'))));%取整避免舍入误差

% ra为加密算子,是由用户输入且仅有用户本人知道的字符串转换而来,这里的转换算法是将字符串中的字符求

%其ASCII码的平均值,作为加密算子ra的值。

text=get(handles.Text_Edit,'String'); %得到要转换的文本内容

code=double(text); %取得文本内容的ASCII码数组

encode=code*ra+ra;%转换成要显示的编码

code_disp=num2str(encode); %将编码转换成字符串,便于显示

set(handles.Code_Edit,'String',code_disp)%显示转换后的结果

解密:

function ToText_pushbutton_Callback(hObject, eventdata, handles)

ra=fix(mean(double(get(handles.op_edit,'string'))));

code_disp=get(handles.Code_Edit,'String');

code=str2num(code_disp);

text=char((code-ra)/ra);

set(handles.Text_Edit,'String',text)

这样我们就完成了简单的加密和解密过程,如:

七步诗

煮豆持作羹,漉菽以为汁。

萁在釜下燃,豆在釜中泣。

本是同根生,相煎何太急?

在密码算子为“曹植”的情况下的转换码为:

531794444 732082738 953246600 878691 878691 878691 878691 878691 878691 878691 878691 878691773221453 956202197 674887942 540980759 870649646 1738556711 756899102 899726330 537812146 533258929 737940678 327272457899832838 594128251 994278807 532007460 775484748 1738556711 956202197 594128251 994278807 532912778 742254252 327272457703298951 696562320 572933159 710461614 798383968 1738556711 810978539 772369389 540794370 607814529 655396978 1704128 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691 878691

这是一段没有看似意义的数字编码,由上述编码和算子“曹植”就可还原出七步诗来了。

但是如果在解密时用了错误的算子,如“曹操”,我们将会看到还原出的文本为:

侣涢軁

珋輲攑儃艢 煙蚽傊俛溃 

蛁壹铦侫琢 輲壹铦俎漨 

楒桐嗌橥瞐 祳玪僼嬆戦@

这是一堆毫无意义的乱码,很难看出原文的内容,从而起到对原始数据的保密作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: