⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 (matlab).txt

📁 加密解密图象隐藏原程序(MATLAB) 注:用bmp图象加密JPEG图象
💻 TXT
字号:
加密解密图象隐藏原程序(MATLAB)

注:用bmp图象加密JPEG图象


1.加密隐藏原程序:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function varargout = Tuxiangjiami(varargin) 
gui_Singleton = 1;
gui_State = struct(''''gui_Name'''',       mfilename, ...
                   ''''gui_Singleton'''',  gui_Singleton, ...
                   ''''gui_OpeningFcn'''', @Tuxiangjiami_OpeningFcn, ...
                   ''''gui_OutputFcn'''',  @Tuxiangjiami_OutputFcn, ...
                   ''''gui_LayoutFcn'''',  [] , ...
                   ''''gui_Callback'''',   []);
if nargin & isstr(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function Tuxiangjiami_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
guidata(hObject, handles);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function varargout = Tuxiangjiami_OutputFcn(hObject, eventdata, handles)

arargout{1} = handles.output;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pushbutton1_Callback(hObject, eventdata, handles)
global counter
global yasuobina
[filename1,pathname]=uigetfile(''''*.jpg'''',''''Open file...'''');
fid1=fopen([pathname filename1],''''rb'''');
yasuoa=fread(fid1,inf,''''uint8''''); %二进制读入
fid2=fopen(''''temp1.jpg'''',''''w+'''');  %新建一个空白图
fwrite(fid2,yasuoa,''''uint8'''');  %写入读入的二进制代码
imshow(imread(''''temp1.jpg'''')) %读出它的RGB并画图
yasuobina=dec2bin(yasuoa);
[binarow,binclounm]=size(yasuobina);
counter=binarow*binclounm;% 计算压缩的二进制的总位数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pushbutton2_Callback(hObject, eventdata, handles)

global a
global b
[filename2,pathname]=uigetfile(''''*.jpg'''',''''Open file...'''');
a=imread([pathname,filename2]);%a为载体图象
imwrite(a,''''temp2'''',''''bmp'''');
b=imread(''''temp2'''',''''bmp'''');
imshow(b);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ffunction pushbutton3_Callback(hObject, eventdata, handles)

global b
global counter
global yasuobina
global counter
ad=double(b);
[adrow,adcolumn]=size(ad);
number=adrow*adcolumn; %计算a元素各数


onearraybin=dec2bin(ad);

[binprow,binpclounm]=size(onearraybin);
range=binprow*binpclounm;
miyao=counter/8;

miyaobin=dec2bin(miyao);
[miyaorow,miyaocolunm]=size(miyaobin);

for i=1:miyaocolunm
    onearraybin(range+1-i)=miyaobin(miyaocolunm-i+1);
end
for i=(miyaocolunm+1):30
    onearraybin(range+1-i)=''''0'''';
end
for i=31:(counter+30)
    onearraybin(range+1-i)=yasuobina(i-30);
end
   
onearray=bin2dec(onearraybin);
new=ones(adrow,adcolumn/3,3);
for k=1:3
   for j=1:(adcolumn/3)
     for i=1:adrow
           new(i,j,k)=onearray(i+(j-1)*adrow+(k-1)*adrow*adcolumn/3);
    end
  end
end

c=uint8(new);
imshow(c)
imwrite(c,''''hide.bmp'''',''''bmp'''')
miyaostr=num2str(miyao);
msgbox([''''操作成功! 密钥为: '''' miyaostr ''''  请切记!!!  ''''] ,''''Message'''');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


2.解密提取原程序:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function varargout = Tuxiangjiemi(varargin)
gui_Singleton = 1;
gui_State = struct(''''gui_Name'''',       mfilename, ...
                   ''''gui_Singleton'''',  gui_Singleton, ...
                   ''''gui_OpeningFcn'''', @Tuxiangjiemi_OpeningFcn, ...
                   ''''gui_OutputFcn'''',  @Tuxiangjiemi_OutputFcn, ...
                   ''''gui_LayoutFcn'''',  [] , ...
                   ''''gui_Callback'''',   []);
if nargin & isstr(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Tuxiangjiemi_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function varargout = Tuxiangjiemi_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pushbutton1_Callback(hObject, eventdata, handles)
global yitiao
[filename1,pathname]=uigetfile(''''*.bmp'''',''''Open file...'''');
yitiao=imread([pathname,filename1],''''bmp'''');
imshow(yitiao)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
    set(hObject,''''BackgroundColor'''',''''white'''');
else
    set(hObject,''''BackgroundColor'''',get(0,''''defaultUicontrolBackgroundColor''''));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function pushbutton2_Callback(hObject, eventdata, handles)
global yitiao
global miyao
miyao=0;
msuc=0;
prompt={''''请输入密钥:''''};
dlgTitle=''''输入密钥'''';
lineNo=1;
field={''''num''''};
miyao=inputdlg(prompt,dlgTitle,lineNo)


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -