Beruflich Dokumente
Kultur Dokumente
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Redes_OpeningFcn, ...
'gui_OutputFcn', @Redes_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(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
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = Redes_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
TextPlano=get(handles.edit1,'String');
% Ingreso de sustitucion
Permutacion=get(handles.edit3,'String');
Permutacion=str2num(Permutacion)
disp(TextPlano);
L=length(TextPlano);
%disp(L);
division=L/4;
entero=fix(division);
decimal=100*(division-fix(division));
filas=entero;
Text=TextPlano;
%Rellenar espacios
if decimal==25
disp("25");
b = blanks(3);
Text=[TextPlano,b];
filas=entero+1;
L=L+3;
else if decimal==50
disp("50");
b = blanks(2);
Text=[TextPlano,b];
filas=entero+1;
L=L+2;
else if decimal==75
disp("75");
b = blanks(1);
Text=[TextPlano,b];
filas=entero+1;
L=L+1;
end
end
end
%Alfabeto
A = (32:126);
Alfabeto = char(A);
Alfabeto = reshape(Alfabeto,95,1)'
%Alfabeto m+2
After=Alfabeto((Sustitucion + 1):95);
Before=Alfabeto(1:(Sustitucion));
disp("Alfabeto 2");
Alfabeto2=[After,Before]
%Reordenar en bloque de 4
TextBloque=reshape(Text,[4,filas])'
MTP=size(TextBloque);
filaP=MTP(1,1);
if rem(filaP,2)==0
disp('El número es Par')
TextBloque2=TextBloque;
else
disp('El número es Impar')
z = blanks(4);
filaP=filaP+1;
TextBloque2=[TextBloque;z]
end
for ii=1:filaP
for jj=1:4
for kk=1:95
if TextBloque2(ii,jj)==Alfabeto(1,kk)
TextSustitucion(ii,jj)=Alfabeto2(1,kk);
end
end
end
end
TextSustitucion
for iii=1:filaP
for jjj=1:4
TextPermutacion(iii,jjj)=TextSustitucion(iii,Permutacion(1,jjj));
end
end
TextPermutacion
Encriptacion=TextPermutacion;
for iiii=1:filaP
if rem(iiii,2)==0
Encriptacion([(iiii-1) iiii],:)=Encriptacion([iiii (iiii-1)],:);
end
end
Encriptacion=vec2mat(Encriptacion,filaP*4)
set(handles.text9,'String',char(Encriptacion));
% Ingreso de sustitucion
PermutacionClaveInv=get(handles.edit4,'String');
PermutacionClaveInv=str2num(PermutacionClaveInv)
disp(TextEncriptado);
L2=length(TextEncriptado);
% Reorganizar en bloques de 4
BloqueEncriptado=vec2mat(TextEncriptado,4)
MTP2=size(BloqueEncriptado);
filaP2=MTP2(1,1);
% Cambiar filas de 2 en 2
for x=1:filaP2
if rem(x,2)==0
BloqueEncriptado2([(x-1) x],:)=BloqueEncriptado([x (x-1)],:)
end
end
%Permutacion Inversa
for xx=1:filaP2
for yy=1:4
PermutacionINV(xx,yy)=BloqueEncriptado2(xx,PermutacionClaveInv(1,yy));
end
end
PermutacionINV
% Sustitucion Inversa
%Alfabeto
A = (32:126);
Alfabeto = char(A);
Alfabeto = reshape(Alfabeto,95,1)'
%Alfabeto m+2
After=Alfabeto((Sustitucion + 1):95);
Before=Alfabeto(1:(Sustitucion));
disp("Alfabeto 2");
Alfabeto2=[After,Before]
for ii=1:filaP2
for jj=1:4
for kk=1:95
if PermutacionINV(ii,jj)==Alfabeto2(1,kk)
SustitucionINV(ii,jj)=Alfabeto(1,kk);
end
end
end
end
Desencriptacion=vec2mat(SustitucionINV,filaP2*4)
set(handles.text10,'String',char(Desencriptacion));
global Sustitucion
if hObject== handles.uno1
Sustitucion=1