Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak stworzyć algorytm szyfrujący/mieszający
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Chciałbym stworzyć mój własny algorytm szyfrujący. Np. podaję jakiś ciąg znaków: A4Dg710dhg!834*e!39 a algorytm szyfruje według tego ciągu. Dodatkowo potem żeby była możliwość odszyfrowania. Czyli:
  1. <?php
  2. require_once('algorytm.php');
  3. $ciag = 'hello';
  4. $szyfruj = '123dG19#';
  5.  
  6. echo szyfruj($ciag, $szyfruj);
  7. echo odszyfruj(szyfruj($ciag, $szyfruj), $szyfruj);
  8. ?>


Może też się źle wyraziłem. Może to być funkcja mieszajaca. Do końca nie odróżniam tych typów. Próbowałem wykorzystać base64 ale przy krótkich liczbach: 2, wychodzą ciągi liter i == co u mnie jest niepożądane. Dlatego chciałem stworzyć alogrytm mieszający (i/lub) szyfrujacy. Ale nie mam pomysłu jak go wykonać.

Proszę o pomoc!

Pozdrawiam, thomson89!
Spawnm
poczytaj o rot_13 i szyfr cezara,
a potem wymyśl coś własnego bazując na tamtych smile.gif
thomson89
szyfr cezara nie pomoże bo próbując mieszać liczbę 1 wyjdzie 1 :|

--EDIT--

...a z rot13 to podmienia. Myślałem (teraz dopiero) nad dodaniem jakiegoś ciągu (czyli tutaj mój tajny ciąg). Wciskam gdzieś w ciąg moją liczbę, podmieniam substr'tem smile.gif i mamy alogrytm szyfrujący. Dobrze myślę?
Spawnm
nom, przykładowo rot 13 w php:
  1. <?php
  2. function rot13($s) {
  3. return strtr($s,"NnOoPpQqRrSsTtUuVvWwXxYyZzAaBbCcDdEeFfGgHhIiJjKkLlMm","AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz");
  4. }
  5. $string="cos";
  6. echo "rot13 of \"$string\" is \"".rot13($string)."\"";
  7. ?>


teraz skręć coś własnego smile.gif
thomson89
Coś własnego to chyba nie umiem.

  1. <?php
  2. function mieszaj($s, $k, $h){
  3.   $liczba = strtr($s, $k, $h);
  4.  
  5.   return $liczba;
  6. }
  7. ?>


Mam takie coś, ale np. jak mam liczbę 3, to zamieni ją na 4. A jak liczbę 3 zamienić na jakiś 12439873278120?
Spawnm
  1. <?php
  2. echo strstr($pass,"123","321");
  3. ?>

questionmark.gif

czemu chcesz 1 cyferkę zamienić na tak długi ciąg?
thomson89
Ano nie powiem, bo to ma być jedno z zabezpieczeń. Ale takie coś własnie potrzebuję.
Spawnm
str_replace('3','12439873278120',$pass);
potem str_replace('12439873278120','3',$pass);
ale najprawdopodobniej przy kilku liczbach powstanie bałagan i ci źle odkoduje tongue.gif
może na kod 16 zamieniaj ?
thomson89
Cytat(Spawnm @ 6.04.2009, 17:26:15 ) *
może na kod 16 zamieniaj ?
nie rozumiem

co do str_replace to wychodzi nie algorytm tylko zmiana sleep.gif
Spawnm
Szesnastkowy system liczbowy znaczy się winksmiley.jpg ew. binarny .

może ord" title="Zobacz w manualu PHP" target="_manual i jakieś przesunięcie ?
thomson89
W końcu otrzymałem idealną formułę. Zakodowany ciag 3 zmieniłem na 9718019041,1 lub 878501901,11 albo 294801907875 a wszystko zależy od mt_rand. No i da się odszyfrować... smile.gif Jak ktoś zainteresowany formułą to na PW.

--EDIT--

No dobra, zeby nie było że się chamię. Losuje jakieś liczby, ustawiam je obok ord($ciag) a potem mieszam z cyfer na literki i z literek na cyferki. Przecinki to efekt uboczny tak małej ilości znaków smile.gif

Dziękuje za pomoc, Spawnm!
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.