Kryptering med PHP
PHP är ett mycket väl använt programmeringsspråk som används i samband med webb-programmering. Krypteringsfunktionerna i PHP kan delas upp i följande kategorier:
- mcrypt
- openssl
- inbyggda
Här följer en mycket liten sammanställning av dessa tre kategorier:
mcrypt
Mcrypt som är ett tredjepartsbibliotek innefattar en mängd kryptering/dekrypterings-funktioner såsom:
- mcrypt_cbc — Encrypt/decrypt data in CBC mode
- mcrypt_cfb — Encrypt/decrypt data in CFB mode
- mcrypt_create_iv — Create an initialization vector (IV) from a random source
- mcrypt_decrypt — Decrypts crypttext with given parameters
Vill du exempelvis skapa en SHA256 hexsträng på godtycklig sträng kan du göra enligt följande:
$sha256b= base64_encode(bin2hex(mhash(MHASH_SHA256,$phrase)));
openssl
OpenSSL är också ett tredjepartsbibliotek och innefattar bl.a dessa funktioner:
- openssl_seal — Seal (encrypt) data
- openssl_sign — Generate signature
- openssl_verify — Verify signature
De funktioner OpenSSL tillhandahåller i PHP är mer inriktade på assymetrisk kryptering.
inbyggda funktioner
Den mest använda krypteringsfunktionen i PHP är crypt() som stödjer följande krypteringsalgoritmer:
- CRYPT_STD_DES – Standard DES-based encryption with a two character salt
- CRYPT_EXT_DES – Extended DES-based encryption with a nine character salt
- CRYPT_MD5 – MD5 encryption with a twelve character salt starting with $1$
- CRYPT_BLOWFISH – Blowfish encryption with a sixteen character salt starting with $2$ or $2a$
Övriga kryptorelaterade funktioner som återfinns som standard i PHP är exempelvis sha1 och md5.