Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja Crypt
Forum PHP.pl > Forum > Przedszkole
urnansze
Mam takie oto pytanko, czy ktoś wie dlaczego funkcja crypt() koduje tylko pierwszych siedem znaków ? Oto przykład skryptu.

  1. <?php
  2. $haslo = &#092;"administrator\";
  3. echo $haslo;
  4. echo '<br>';
  5. $haslo = crypt($haslo, &#092;"CRYPT_BLOWFISH\");
  6. echo $haslo;
  7. echo '<br>';
  8.  
  9. $haslo2 = &#092;"administ\";
  10. echo $haslo2;
  11. echo '<br>';
  12. $haslo2 = crypt($haslo2,&#092;"CRYPT_BLOWFISH\");
  13. echo $haslo2;
  14. ?>


W wyniku jego działania stringi 'administrator' i 'administ' zostaną zakodowane tak samo. Jak widać $haslo2 zaweira ciąg 8 znaków, gdyby ten ciąg zmniejszyć o jeden lub więcej to $haslo i $haslo2 po zakodowniu będą różne. W dokumentacji php na www.php.net nie znalazłem żadnej informacji na ten temat.

---
Do umieszczania kodu php mamy znacznik [php]
hwao ph34r.gif
FiDO
Cos slabo czytasz tego manuala:
Cytat
The standard DES-based encryption crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of str, so longer strings that start with the same eight characters will generate the same result (when the same salt is used).

A w ogole to tej funkcji sie uzywa troche inaczej jak chcesz miec blowfisha, przeczytaj jeszcze raz manuala, ale ze zrozumieniem, sa nawet przyklady.
urnansze
Spoko, dzięki, ja tego manuala tak pobierznie przglądłem i jak widać przeoczyłem to co trza a BLOWFISHA to użyłem tylko dla przykładu.
FiDO
Dla przykladu, czy nie, nie zmienia to faktu, ze zle go uzyles i nie zadzialal Blowfish tylko standardowy DES, ktory ma przypadlosc z 8 znakami. Zerknij w przyklady do manuala, jest tam pokazane jak uzyc kazdy z tych "szyfrow".
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.