Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zaszyfrowanie liczby wlasnym szyfrem, jakies pomysly ?
kuna
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 20.06.2004

Ostrzeżenie: (0%)
-----


Mam takie liczby:

524000166
2418424411
1489279192
3320874509
...

Posiadam takze baze ze znakami, jest ich okolo 32k, sa one w pliku.

Mam zamiar za pomoca tych znakow zakodowac te liczby, tak aby wykorzystac przynajmniej z 500 znakow z tablicy na jedna taka liczbe.

Powiem szczerze ze nie mam pojecia jak to zrobic, ptobowalem na kilka sposobow ale w pewnym momencie ciag zaczyna sie powtarzac, a ja chce aby kazda liczba byla unikalnym ciagiem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Marcin_m
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.06.2005

Ostrzeżenie: (0%)
-----


Użyj zwykłego xora (dodatkowo możesz użyć wbudowanej w php funkcji crypt() );

Dla danej wartości i klucza możesz zrobić tak:

  1. <?php
  2.  
  3. $wartosc=5040;
  4. $klucz=5466;
  5. $zakodowana_wartosc=($wartosc ^ $klucz);
  6. echo $zakodowana_wartosc;
  7.  
  8. ?>


Ponadto w ten sposób zakodowaną wartość możesz odczytać przy pomocy klucza

  1. <?php
  2.  
  3. $klucz=5466;
  4. echo ($zakodowana_wartosc ^ $klucz);
  5.  
  6. ?>


Możesz teraz "miksować" szyfrowanie np. dla danego klucza każdy znak szyfrować każdym znakiem klucza (czyli w tym przypadku);
5->5
0->4
4->6
0->6

i kiedy znaków do szyfrowania jest więcej po prostu przydzielasz wartości klucza od początku (ponoć roszyfrowanie tak zakodowanego ciągu bez znajomości klucza drastycznie maleje dla kluczy o wielkości zbliżonej do szyfrowanego tekstu).
Go to the top of the page
+Quote Post
kuna
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 20.06.2004

Ostrzeżenie: (0%)
-----


Nie zrozumielismy sie, ty mi podales skrypt dla liczb, a dla znakow juz on nie dziala sad.gif
Go to the top of the page
+Quote Post
Marcin_m
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.06.2005

Ostrzeżenie: (0%)
-----


Dla całych słów nie, ale przecież słowa można rozbić na litery:

  1. <?php
  2. $zakodowana=array();
  3. $rozkodowana=array();
  4. $wartosc='Ala ma kota';
  5. $klucz='haslo';
  6. (array)$wartosc;
  7. (array)$klucz;
  8.  
  9.  $j=0;//j bedzie indeksem klucza
  10.  
  11. for($i=0;$i<strlen($wartosc);$i++)
  12. {
  13. $zakodowana[$i]=($wartosc[$i] ^ $klucz[$j]);
  14.  $j++;
  15.  //jeżeli osiągnelismy koniec klucza to zaczynamy od początku
  16.  if($j>=strlen($klucz))
  17.  {
  18.  $j=0;
  19. }
  20.  }
  21.  
  22. for($i=0;$i<count($zakodowana);$i++)
  23. {
  24. echo $zakodowana[$i]; //wyświetlamy zakodowaną wartość
  25. }
  26.  
  27.  $j=0; //zerujemy indeks klucza
  28. for($i=0;$i<count($zakodowana);$i++)
  29. {
  30.  $rozkodowana[$i]=($zakodowana[$i] ^ $klucz[$j]);
  31.  $j++;
  32.  if($j>=strlen($klucz)){$j=0;}
  33.  }
  34. echo '<br>';
  35.  for($i=0;$i<count($rozkodowana);$i++)
  36. {
  37. echo $rozkodowana[$i]; //wyswietlamy rozkodowaną wartość
  38. }
  39. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:24