用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
这是一段没有看似意义的数字编码,由上述编码和算子“曹植”就可还原出七步诗来了。
但是如果在解密时用了错误的算子,如“曹操”,我们将会看到还原出的文本为:
侣涢軁
珋輲攑儃艢 煙蚽傊俛溃
蛁壹铦侫琢 輲壹铦俎漨
楒桐嗌橥瞐 祳玪僼嬆戦@
这是一堆毫无意义的乱码,很难看出原文的内容,从而起到对原始数据的保密作用。
加密:
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
这是一段没有看似意义的数字编码,由上述编码和算子“曹植”就可还原出七步诗来了。
但是如果在解密时用了错误的算子,如“曹操”,我们将会看到还原出的文本为:
侣涢軁
珋輲攑儃艢 煙蚽傊俛溃
蛁壹铦侫琢 輲壹铦俎漨
楒桐嗌橥瞐 祳玪僼嬆戦@
这是一堆毫无意义的乱码,很难看出原文的内容,从而起到对原始数据的保密作用。
相关文章推荐
- 朴素贝叶斯分类原理及Python实现简单文本分类
- 实现简单的文本加密
- 通过js简单实现将一个文本内容转译成加密文本
- 对matlab GUI程序简单加密
- C#实现最简单的文本加密方法
- 文件操作(1):文本加密的原理
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)
- 高性能页面加载技术--BigPipe设计原理及Java简单实现
- 简单实现textview文本每隔两秒就改变一次
- CString实现原理简单介绍
- 共轭梯度下降及matlab简单实现
- PCA的原理及MATLAB实现
- PHP简单实现文本计数器的方法
- 单点登录原理与简单实现
- hrtimer的简单使用 + 原理和实现
- Java 反射学习(四)反射技术开发框架原理简单实现
- java中RSA加密解密算法简单实现
- IoC原理-使用反射/Emit来实现一个最简单的IoC容器
- jQuery原理系列-css选择器的简单实现
- hadoop简单实现文本数据全局排序