Treść:
Zadaniem było stworzyć funkcję XORującą dwie liczby (funkcja stworzona i udostepniona przez prowadzącego) oraz na podstawie XOR'a stworzóc
funkcję szyfrującą łańcuch z podanym kluczem oraz funkcje deszyfrującą z podanym kluczem.
Rozwiązanie:
create or replace
package szyfr as
function bitor(p1 number, p2 number) return number;
function bitxor(p1 number, p2 number) return number;
Function Szyfruj(ciag varchar2, klucz number)
return varchar2;
Function Deszyfruj(ciag_zaszyfrowany varchar2, klucz number)
return varchar2;
end szyfr;
-------------------------------------------------------
create or replace
package body szyfr as
function bitor(p1 number, p2 number) return number is
begin
return p1-bitand(p1,p2)+p2;
end;
function bitxor(p1 number, p2 number) return number is
begin
return bitor(p1,p2)-bitand(p1,p2);
end;
Function Szyfruj(ciag varchar2, klucz number)
return varchar2 as
ciag_zaszyfrowany varchar2(255) := '';
retval number;
begin
for i in 1..length(ciag) loop
retval := szyfr.bitxor(ascii(substr(ciag, i, 1)), klucz);
ciag_zaszyfrowany:=ciag_zaszyfrowany || chr(retval);
end loop;
return ciag_zaszyfrowany;
end;
Function Deszyfruj(ciag_zaszyfrowany varchar2, klucz number)
return varchar2 as
ciag_odszyfrowany varchar2(255) := '';
retval number;
begin
for i in 1..length(ciag_zaszyfrowany) loop
retval := szyfr.bitxor(ascii(substr(ciag_zaszyfrowany, i, 1)), klucz);
ciag_odszyfrowany:=ciag_odszyfrowany || chr(retval);
end loop;
return ciag_odszyfrowany;
end;
end szyfr;
Wyszukiwarka
Podobne podstrony:
kartkówka nr 4 rozwiazanieKartkowka nr 1 Zadania 04 XI 2009ZAGADNIENIA DO KARTKÓWKI NR 1 2013ZAGADNIENIA DO KARTKÓWKI NR 2 2013kartkówka nr 5 rozwiązanie (Bołoz)Kartkowka nr 3 Zadania 16 XII 2009kartkówka nr 4 (prawdo) NiewiarowskiPYTANIA DO KARTKÓWKI NR 3 2013kartkówka nr 5 rozwiazanieKartkowka nr 4 Zadaniakartkówka nr 5 (odchylenie) Niewiarowskikartkówka nr 5 rozwiazanie (moje)Kartkowke nr 3kartkówka nr 2 NiewiarowskiTEMAT ARKUSZA NR 3 rzut cechowanynr 6aZałącznik nr 18 zad z pisow wyraz ó i u poziom Iwięcej podobnych podstron