crypt() encrypteert een string geburikmakend vande standaard Unix DES encryptie methode. Argumenten zijn de string die gecrypteerd moet worden en een optionele twee-karakter salt string om de encryptie op te baseren. Zie de Unix man page voor je crypt functie en meer informatie.
Als het salt argument niet wordt meegegeven zal de string willekeurig gegenereerd worden door PHP.
Sommige operating systems ondersteunen meer dan een type encryptie. Soms is zelfs de standaard DES encryptie vervangen door een MD5 gebaseerd encryptie algoritme. Het encryptie type wordt getriggerd door het salt argument. Op het moment van installeren bepaalt PHP de mogelijkheden van de crypt functie en zal salts accepteren voor andere encryptie types. Als er geen salt beschikbaar is zal PHP zelf een uit 2 karakters bestaande DES salt genereren, tenzij het default encryptie type op het systeem MD5 is, in dat geval zal een random MD5 compatibele salt gegenereerd worden. PHP maakt een constante aan genaamd CRYPT_SALT_LENGTH die je vertelt of een regulare 2-karakter salt of dat een 12-karakter MD5 van toepassing is.
In het geval je de meegegeven salt gebruikt, wees er dan van bewust dat de salt 1 keer gegenereerd wordt. Als je de functie recursief aanspreekt, kan dit gevolgen hebben voor de appearance en, tot op zekere hoogte, de veiligheid.
De standaard DES encryptie crypt() gebruikt de salt als de eerste 2 karakters van de output.
Op systemen waar de crypt() functie meerdere encryptie types ondersteunt, de volgende constanten zijn gezet op waardes 0 of 1, afhankelijk van het feit of het gegeven type beschikbaar is:
CRYPT_STD_DES - Standaard DES encryptie met een 2-karakter SALT
CRYPT_EXT_DES - Uitgebreide DES encryptie met een 9-karakter SALT
CRYPT_MD5 - MD5 encryptie met een 12-karakter SALT beginnend met $1$
CRYPT_BLOWFISH - Uitgebreide DES encryption met een 16-karakter SALT startende met $2$
Er is geen decrypt functie, omdat crypt() gebruikmaakt van een one-way algoritme.
Zie ook: md5().