Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] szyfrowanie danych
Forum PHP.pl > Forum > PHP
FireMan
Witam. Mam problem z plikiem który w prosty sposób zamienia podany wyraz na jego zamiennik. Zmienne $hars, s± sobie odpowiednikami i na podstawie ustawienia tych znaków, pobierany ma być klucz. tongue.gif Wiem że gadam pewnie jakie¶ niezrozumiałe głupoty, ale nie wiecie jaki może być problem ? My¶lę że kod jest prosty i każdy go zrozumie.

Podaj±c słowo "krowa" powinno nam zwrócić ci±g ">\mÓ-".

  1. <?php
  2. $hars = "qwertyuiopasdfghjklzxcvbnm[]\;',./`1234567890-=QWERTYUIOPASDFGHJKLZXCVBNM{}|:<>?~!@#$%^&*()_+ę€ó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ";
  3. $hars2 = "Ó^\1E~Hmx-ątR#kS>+bLFD3vrZćłoMIa?=nCf}ńTŁB.yŻe98`dQWVż?ęl)&($ĄJ6{Ć:/?zĘ_?!?i]*@GN<|XP0q,YAó[Ń'c;7g4Us5ju2OhK%w?p";
  4. $end = "";
  5.  
  6. function hash_key($value)
  7. {
  8. $ile = strlen($value);
  9. for($i = 1; $i==$ile; $i++)
  10. {
  11. $pos = strpos($value[$i],$hars);
  12. $end[$i] = $hars2[$pos];
  13. }
  14.  
  15. $value2 = $end;
  16.  
  17. return $value2;
  18. }
  19.  
  20. print hash_key("krowa");
  21.  
  22. ?>
Crozin
1. character, nie haracter.
2.
  1. $oryginals = str_split('abcdef');
  2. $replacements = str_split('^&102-+');
  3.  
  4. $encodeTable = array_combine($oryginals, $replacements);
  5. $decodeTable = array_combine($replacements, $oryginals);
  6.  
  7. $encodedString = strtr('ala ma kota', $encodeTable);
  8. $decodedString = strtr('a6534542./213.,2342.4,23423', $decodeTable);


Swoj± drog± ciężko by to nazwać szyfrowaniem...
toaspzoo
Cytat
Podaj±c słowo "krowa" powinno nam zwrócić ci±g ">\mÓ-".


Nie używaj polskich znaków w php, szczególnie w funkcjach

Funkcja pomysłowa
Crozin
@toaspzoo: A to niby czemu? Zreszt± co to ma w tym temacie do rzeczy?
toaspzoo
Bo w anglojęzycznych wersjach nie zadziała
Fifi209
Cytat(toaspzoo @ 18.06.2011, 19:39:26 ) *
Bo w anglojęzycznych wersjach nie zadziała

Słucham? Co?

Przecież chodzi o kodowanie pliku, ustawiasz na utf8, nie wiem jaki edytor nie wspiera tego kodowania
wookieb
Cytat(toaspzoo @ 18.06.2011, 19:22:26 ) *
Nie używaj polskich znaków w php, szczególnie w funkcjach

Gadasz takie bzdury, że aż pragnę i¶ć kupić benzynę na twój stos.
Naucz się używać mb_string to nie będziesz gadał głupot.

@FireMan
Czemu funkcja nie działa?
1) bo pętla się nie wykonuje
2) bo zmienne $hars i inne nie s± widoczne
3) bo Ľle zdobywasz $pos
4) bo z $end robisz tablicę

W skrócie - człowieku masakra, ocknij się.

@crozin
str_split nie działa ze znakami wielobajtowymi (ó, ł) itd

Ale dzieci nie płaczcie, bo przybywa wasze zbawienie.
  1. function hash_key($value)
  2. {
  3. $end = "";
  4. $hars = 'qwertyuiopasdfghjklzxcvbnm[]\;\',./`1234567890-=QWERTYUIOPASDFGHJKLZXCVBNM{}|:<>?~!@#$%^&*()_+ę€ó±¶łżĽćńĘÓˇ¦ŁŻ¬ĆŃ';
  5. $hars2 = 'Ó^\1E~Hmx-ątR#kS>+bLFD3vrZćłoMIa?=nCf}ńTŁB.yŻe98`dQWVż?ęl)&($ĄJ6{Ć:/?zĘ_?!?i]*@GN<|XP0q,YAó[Ń\'c;7g4Us5ju2OhK%w?p';
  6. $ile = strlen($value);
  7. mb_internal_encoding('utf-8');
  8. for($i = 0; $i<$ile; $i++)
  9. {
  10. $pos = mb_strpos($hars, $value[$i]);
  11. $end .= mb_substr($hars2, $pos, 1);
  12. }
  13.  
  14. $value2 = $end;
  15. return $value2;
  16. }

mat-bi
słówko kluczowe - global wink.gif
Fifi209
Cytat(mat-bi @ 18.06.2011, 20:42:35 ) *
słówko kluczowe - global wink.gif

Benzyna droga, chcesz aby wookieb zbankrutował?! Dwie osoby na stosie to większe koszta.
Strzeż się tego, powinni to usun±ć już dawno.

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.