Buenas. Tengo una pregunta sobre un código que copié en clase y que por desgracia no presté mucha atención cuando el profesor lo explicaba. Se trata de un algoritmo de cifrado basado en el cifrado de Vigenère. El programa es el siguiente:
[FONT=Fixedsys]function r=codifica_vigemere(texto,clave)
r='';
k2=1;
for k=1:length(texto)
if texto(k)>='A' && texto(k) <= 'Z' %En caso de ser una letra mayuscula...
desp=clave(mod(k2-1,length(clave))+1)-'A'; %%Habia un +1
r(k)='A'+mod(texto(k)-'A'+desp, 'Z'-'A'+1);
k2=k2+1;
else
r(k)=texto(k);
end
end
end[/FONT]
¿Qué representa desp? ¿Y qué pinta ahí ese mod? ¿Me tengo que aprender este algoritmo de memoria por si lo piden en examen o hay alguna forma de razonarlo?
Espero ansioso vuestra respuesta.
Saludos!
[FONT=Fixedsys]function r=codifica_vigemere(texto,clave)
r='';
k2=1;
for k=1:length(texto)
if texto(k)>='A' && texto(k) <= 'Z' %En caso de ser una letra mayuscula...
desp=clave(mod(k2-1,length(clave))+1)-'A'; %%Habia un +1
r(k)='A'+mod(texto(k)-'A'+desp, 'Z'-'A'+1);
k2=k2+1;
else
r(k)=texto(k);
end
end
end[/FONT]
¿Qué representa desp? ¿Y qué pinta ahí ese mod? ¿Me tengo que aprender este algoritmo de memoria por si lo piden en examen o hay alguna forma de razonarlo?
Espero ansioso vuestra respuesta.
Saludos!
Comentario