crypt() returnerer en standard Unix
DES-baseret krypteret streng, eller en anden algoritme
som måtte være tilgængelig på systemet. Parametre er en streng der skal
krypteres og en frivillig salt
streng til at basere kryptering på. Se Unix
man siden om din krypteringsfunktion for mere information.
Hvis salt
parametren ikke bliver givet, vil en
tilfældig blive genereret af PHP hver gang du kalder denne funktion.
Nogle operativsystemer understøtter flere end én type kryptering.
Faktisk, nogle gange er den standard DES-baserede kryptering erstattet af
en MD5-baseret krypteringsalgoritme. Krypteringstypen bliver aktiveret af
salt
-parametren. Ved installering fastslår PHP
crypt-funktionens evne og vil acceptere salte for andre krypteringstyper.
Hvis intet salt er tilsat vil PHP autogenerere en standard totegns salt
som standard, medmindre standardkrypteringenstypen på systemet er MD5,
hvor en tilfældig MD5-kompatibel salt bliver genereret. PHP sætter en
konstant kaldet CRYPT_SALT_LENGTH som fortæller dig om en regulær totegns
salt passer til dit system eller den længere tolvtegns salt er
anvendelig.
Hvis du bruger den tilføjede salt, skal du være opmærksom på at salten bliver genereret én gang. Hvis du kalder denne funktion gentagende gange kan dette have effekt på både udseende og sikkerhed.
Den standard DES-baserede kryptering crypt()
returnerer salten som de to første tegn i dataen. Den bruger også kun de
første otte karakterer af str
, så længere strenge
som starter med de samme otte karakterer vil gerere det samme resultat
(når den samme salt er brugt).
På systemer hvor crypt()-funktionen understøtter flere krypteringstyper, vil de følgende konstanter være sat til 0 eller 1 afhængig af om den givne type er tilgængelig:
CRYPT_STD_DES - Standard DES-baseret kryptering med en totegns salt
CRYPT_EXT_DES - Udvidet DES-baseret kryptering med en nitegns salt
CRYPT_MD5 - MD5-kryptering med en tolvtegns salt startende med $1$
CRYPT_BLOWFISH - Blowfish kryptering med en sekstenstegns salt startende med $2$ eller $2a$
Bemærk: Der er ingen dekrypteringsfunktion, siden crypt() bruger en en-vejs algoritme.
Eksempel 3. Brug af crypt() med forskellige krypteringstyper
Ovenstående eksempel vil udskrive noget der ligner:
|
Se også md5() og the Mcrypt extension.