Turbo Pascal
 
Szukanie zaawansowane
   
 
Home Rejestracja FAQ Użytkownicy Grupy Galerie  
 
 


Forum Turbo Pascal Strona Główna Pytania prgram szyfrujący tekst dla amatora Pascala
Wyświetl posty z ostatnich:   
       
Napisz nowy temat  Odpowiedz do tematu

Nie 10:29, 07 Maj 2006
Autor Wiadomość
kisow_kosa
Początkujący



Dołączył: 07 Maj 2006
Posty: 3
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu: prgram szyfrujący tekst dla amatora Pascala

Mała prośba mógłby mi ktoś przesłać kod programu, który będzie szyfrował jakiś tekst a potem go deszyfrował.Będę bardzo wdzięczny bo nie mogę go nigdzie znaleźć. Wysyłajcie mi na maila "kasperkawa7@wp.pl".JAk ktoś by miał jeszcze schemat blokowy to już w ogóle super by było. Z góry dzięki.

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Pon 13:45, 08 Maj 2006
Autor Wiadomość
rafael
Administrator



Dołączył: 07 Lut 2006
Posty: 72
Przeczytał: 0 tematów

Ostrzeżeń: 0/3
Skąd: Pszczyna

Temat postu:

Może to Ci się przyda. Program od brata, ale raczej działa :wink: Masz tu jeszcze potrzebne pliki: [link widoczny dla zalogowanych]

Kod:
program szyfrowanie;

uses
  SysUtils;

const
  maxUsersRead=1000;

type
  TUser = record
  login: string[20];
  pwd: string[30];
  end;
  TUsertab = array[1..maxUsersRead] of TUser;

procedure GenerujKlucz;
var
  plik: file of byte;
  key: integer;
begin
  assign(plik,'key.int');
  if not FileExists('key.int') then
    begin
      randomize;
      rewrite(plik);
      key := random(255);
      write(plik, key);
    end;
end;

procedure szyfruj(var tab: Tuser);
var
  j: byte;
  plik: file of byte;
  klucz: byte;
begin
  assign(plik,'key.int');
  reset(plik);
  read(plik,klucz);
  close(plik);
  for j := 1 to length(tab.pwd) do
  begin
    tab.pwd[j] := chr(ord(tab.pwd[j]) + klucz);
  end;
end;

procedure AddUser(fileName: string);
var
  plik: file of TUser;
  u: Tuser;
begin
  writeln('--- USER ---');
  write('LOGIN: ');
  readln(u.login);
  write('HASLO: ');
  readln(u.pwd);
  szyfruj(u);
  writeln;
  writeln;
  Assign(plik, fileName);
  if fileExists(fileName)then
    reset(plik)
  else
    rewrite(plik);
    seek(plik, fileSize(plik));
    write(plik,u);
    close(plik);
  writeln('DANE USERA WPROWADZONE DO SYSTEMU');
  readln;
end;

procedure ReadUsersFromFile(var tab: TUserTab; fileName: string; var count: integer);
var
  plik: file of TUser;
begin
  assignFile(plik, fileName);
  if FileExists(fileName) then
    begin
      count:=0;
      reset(plik);
      while not Eof (plik) do
        begin
        inc(count);
        read(plik,tab[count]);
        end;
    end;
    close(plik);
end;

function CheckUsersFromFile(var tab: TUserTab; count: integer; u: Tuser): boolean;
var
  i: integer;
begin
  result := false;
  for i:=1 to count do
  begin
    szyfruj(tab[i]);
    if (u.login = tab[i].login) and (u.pwd = tab[i].pwd) then
      begin
        result:= true;
        break;
      end;
    end;
end;

procedure login(tab: TUserTab; count: integer; proba: byte);
var
  i: integer;
  a: byte;
  u: Tuser;
begin
  a := proba;
  for i := 1 to proba do
    begin
      write('Podaj login: ');
      readln(u.login);
      write('Podaj haslo: ');
      readln(u.pwd);
      if CheckUsersFromFile(tab,count,u) then
        begin
          writeln('Zalogowales sie!!!');
          readln;
          break;
        end
      else
        begin
          a := a-1;
          if a > 0 then
            writeln('Podales zle dane!! Sproboj jeszcze raz. Pozostalo prob: ', a,'.')
          else
          if a = 0 then
          begin
            writeln('Podales zle dane!!! Wyczerpales limit prob!!!');
            readln;
            break;
          end;
        end;
        readln;
    end;
end;

procedure ZmianaHasla(var tab: Tusertab; a: integer; filename: string);
var
  bufor: Tusertab;
  i: byte;
  plik: file of Tuser;
  login, btw: string;
begin
  assign(plik, filename);
  reset(plik);
  for i := 1 to a do
    begin
      read(plik,bufor[i]);
      szyfruj(bufor[i]);
    end;
  close(plik);
  write('Podaj login: ');
  readln(login);
  for  i := 1 to a do
    begin
      if bufor[i].login = login then
        begin
          write('Podaj nowe haslo: ');
          readln(bufor[i].pwd);
          writeln('Haslo zmienione!!');
          btw := 'yes';
          szyfruj(bufor[i]);
        end;
    end;
  if btw <> 'yes' then
    writeln('Nie znaleziono takiego loginu!!');
  rewrite(plik);
  for i := 1 to a do
    begin
      write(plik,bufor[i]);
    end;
  close(plik);
end;

const
  fileName = 'test.txt';

var
  tab: TUsertab;
  a, wybor: integer;

begin
  generujklucz;
  repeat
    writeln('1 - Zarejestruj sie!!');
    writeln('2 - Zaloguj sie!!');
    writeln('3 - Zmien haslo!!');
    writeln('4 - Zakoncz!!');
    write('Wybierz numer: ');
    readln(wybor);
    if wybor = 1 then
    begin
      AddUser(fileName);
      ReadUsersFromFile(tab,fileName,a);
    end
    else
      if wybor = 2 then
      begin
        ReadUsersFromFile(tab,fileName,a);
        login(tab,a,5);
      end
      else
        if wybor = 4 then
        begin
          writeln('Wyszedles z systemu!');
          readln;
        end
        else
          if wybor = 3 then
          begin
            ReadUsersFromFile(tab,fileName,a);
            ZmianaHasla(tab,a,filename)
          end
          else
            writeln('Niepoprawne polecenie!!!');
  until wybor = 4;
end.


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Czw 16:36, 11 Maj 2006
Autor Wiadomość
kisow_kosa
Początkujący



Dołączył: 07 Maj 2006
Posty: 3
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu: odpowiedź

No nie do końca o to chodziło. Bardziej skłaniałałbym się ku programowi, który np. szyfruje szyfrem cezara(literze "a" przyporzadkowuje litere "d" i tak dalej przesuwają się o 3 w przód zeby zaszsyfrowac lub o 3 w tył by odszyfrowac wiadomość). Chodzi o to, że gdy podam jakiś wyraz program zaszyfruje go i wypisze zmodyfikowanego.Np. wg. tego szyfru (cezara) jak podam wyraz "ala" otrzymam wyraz "dod". Ale nie musi być to ten szyfr cezara. Ale dzięki, że odpisałeś na tamten post. Czekam na odp. :D

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Sob 11:02, 13 Maj 2006
Autor Wiadomość
zielony_admin
Średnio zaawansowany



Dołączył: 18 Lut 2006
Posty: 22
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu:

Mój program szyfujący:

Kod:
program szyfrowanie_cezarem;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure szyfruj(tekst: string);
var
  dlugosc, i: byte;
begin
  writeln;
  write('Zaszyforwany tekst: ');
  dlugosc := length(tekst);
  for i := 1 to dlugosc do
    write(chr(ord(tekst[i])+3));
end;

var
  tekst: string[50];

begin
  write('Podaj tekst do zaszyfrowania: ');
  readln(tekst);
  szyfruj(tekst);
  readln;
end.


Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Nie 11:43, 21 Maj 2006
Autor Wiadomość
kisow_kosa
Początkujący



Dołączył: 07 Maj 2006
Posty: 3
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu:

wielkie dzięki stary nawet nie wiesz jak mi pomogles. Powiedz mi tylko jeszcze co daje korzystanie z tego SysUtils, bo w obiu programach z tego korzystałeś i jestem ciekaw.

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  

Nie 12:18, 21 Maj 2006
Autor Wiadomość
zielony_admin
Średnio zaawansowany



Dołączył: 18 Lut 2006
Posty: 22
Przeczytał: 0 tematów

Ostrzeżeń: 0/3

Temat postu:

Jeśli programujesz w Turbo Pascalu to się tym nie przejmuj. Ja używam Delphi i tam biblioteka SysUtils jest niezbędna.

Post został pochwalony 0 razy
 
Zobacz profil autora
      Do góry  
Napisz nowy temat  Odpowiedz do tematu

 
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


      Do góry  

Strona 1 z 1
Skocz do:  
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
Avalanche style by What Is Real © 2004
             
Regulamin