Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szyfrowanie jednym kluczem, deszyfrowanie drugim
Forum PHP.pl > Inne > Hydepark
Bastion
Czy istnieje jakiś algorytm umożliwiający zakodowanie ciągu znaków parą kluczy
tak aby dało się go zdekodować tylko jednym z tych kluczy Coś na zasadzie prywatnego i publicznego klucza w następujący sposób :

  1. <?php
  2.  
  3. $klucz_prywatny = generuj_prywatny();
  4. $klucz_publiczny = generuj_publiczny();
  5.  
  6. $tajne = encrypt('tekst' , $klucz_prywatny, $klucz_publiczny);
  7.  
  8. $tekst = decrypt($tajne , $klucz_publiczny);
  9. ?>



Chodzi mi o to aby tylko osoba posiadajaca klucz prywatny mogla zakodowa jakis tekst ktory moze byc zdekodowany dla innego, tylko jednego klucza niz prwatny.
nospor
php -> Hydepark

Pewnie że jest tego multum. Poczytaj se coś o kryptografi
FiDO
Ja tylko dodam, ze to co opisales to nie jest zadne szyfrowanie.. to jest cos na wzor prostego podpisu cyfrowego. Dlaczego? No bo do "odkodowania" jest potrzebny klucz publiczny, ktory jak juz sama nazwa wskazuje jest publiczny, wiec dostep do niego ma kazdy. A klucz prywatny posiada (a przynajmniej powinna) tylko jedna osoba, dzieki temu mozna stwierdzic, ze ktos kto "zaszyfrowal" w ten sposob jakis dokument jest w posiadaniu klucza prywatnego pasujacego do tego publicznego, a co za tym idzie mozna stwierdzic tozsamosc takiej osoby. Dzieki temu mozemy uzyskac pewnosc, ze dany dokument zostal na pewno napisany przez taka i taka osobe i nikt go po drodze nie zmienil (no chyba, ze podwinal klucz prywatny wlascicielowi, ale to juz inna bajka).
To jest jednak wersja uproszczona, ktora daleka jest od idealu podpisu cyfrowego, ale niestety szczegolow z wykladow z inzynierii bezpieczenstwa juz nie pamietam, za duzo bylo tych schematow winksmiley.jpg W kazdym razie pamietam, ze wykladowca pokazal nam jak mozna to bardzo prosto ominac... musialbys poszukac jakis materialow na ten temat.
Jesli natomiast chciales szyfrowanie to robi sie to odwrotnie.. szyfruje sie wiadomosc kluczem publicznym, natomiast odszyfrowac ja moze jedynie posiadacz klucza prywatnego. Chyba najpopularniejszym przykladem takiego szyfru asymetrycznego jest RSA, wiadomosci o nim na googlach na pewno nie braknie..
DeyV
Czyli SSL...

A więc polecam
http://www.php.net/manual/pl/ref.openssl.php
i przykładową, wyglądająca bardzo ciekawie, klasę wykorzystującą tą bibliotekę:
http://www.karenandalex.com/php_stuff/classes/Openssl.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.