Текущий архив: 2007.05.13;
Скачать: CL | DM;
Вниз
шифр Вижинера Найти похожие ветки
← →
Маша_Семенова (2007-03-15 19:01) [0]Уважаемые мастера.
Есть ли у кого алгоритм
шифрования Вижинера.
Спасибо.
← →
S@shka © (2007-03-15 19:50) [1]Шифр Вижинера:
program job3_Vishiner;
uses crt;
var
a,b,c,d:string;
i,j,k,t,q:integer;
begin
t:=1;
writeln("Enter text for coding");
readln(a);
writeln("Enter code-word");
readln(d);
q:=length(d);
c:="";
b:="abcdefghijklmnopqrstuvwxyz";
for i:=1 to length(a) do
for j:=1 to length(b) do
begin
if a[i]=b[j] then
begin
if t>length(d) then
t:=1;
for k:=1 to length(b) do
begin
if d[t]=b[k] then
q:=j+k-1;
if q>26 then
q:=q-26;
end;
c:=c+b[q];
t:=t+1;
end;
end;
writeln(c);
readkey;
end.
Симметричный ключ (или использование лог преобразований):
Program Job4_Sim_key;
uses crt;
var
t:string;
n,z,k,i,j:integer;
mas,sam:array[1..100] of string;
abc,buf:string;
begin
abc:="abcefgh01234567890xyz";
z:=1;
k:=0;
writeln("Enter text for coding");
readln(t);
writeln("Chose kol-vo el-tov v gruppe");
readln(n);
for i:=1 to length(t) do begin
mas[z]:=mas[z]+t[i];
k:=k+1;
if k=n then begin
k:=0;
z:=z+1;
end;
end;
if length(mas[z])<n then
for i:=1 to (n-length(mas[z])) do begin
mas[z]:=mas[z]+abc[i];
end;
k:=z;
for i:=1 to z do begin
buf:=mas[i];
for j:=n downto 1 do begin
sam[k]:=sam[k]+buf[j];
end;
k:=k-1;
end;
writeln("Open text");
for i:=1 to z do
write(mas[i],"-");
writeln("");
writeln("Coding text");
for i:=1 to z do
write(sam[i],"-");
readkey;
end.
Применение гаммирования:
Program job6_Gamma;
uses crt;
var
t,s:string;
i,j:integer;
masS,masG,masR:array [1..100] of integer;
abc,buf,gamma:string;
begin
abc:="abcefghijklmnopqrstuvwxyz";
s:="";
writeln("Enter text for coding");
readln(t);
randomize;
for i:=1 to length(t) do
gamma:=gamma+abc[RANDOM(24)+1];
writeln("Text: ",t);
writeln("Gamma: ",gamma);
{Ocifrovka vvedennogo texta}
for i:=1 to length(t) do begin
for j:=1 to length(abc) do
If t[i]=abc[j] then
masS[i]:=j;
end;
{Ocifrovka Texta gammi}
for i:=1 to length(gamma) do
for j:=1 to length(abc) do
if gamma[i]=abc[j] then
masG[i]:=j;
{Ri=(Si+G) mod (k-1)}
for i:=1 to length(t) do begin
masR[i]:=(masS[i]+masG[i]) mod (length(t)-1);
if masR[i]=0 then {proverka esli ostatka net}
s:=s+"\";
for j:=1 to length(abc) do
if masR[i]=j then
s:=s+abc[j];
end;
writeln("Coding-text: ",s);
readkey;
end.
← →
S@shka © (2007-03-15 19:54) [2]Маша_Семенова ))))
Ох, Ма...ша )
← →
Leonid Troyanovsky © (2007-03-15 21:20) [3]
> Маша_Семенова (15.03.07 19:01)
> Есть ли у кого алгоритм
> шифрования Вижинера.
http://groups.google.com/group/fido7.ru.delphi/browse_thread/thread/865bf0adf13dfc43
--
Regards, LVT.
Страницы: 1 вся ветка
Текущий архив: 2007.05.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.048 c