Taggat med: md5

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:

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:

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.

HMAC och WordPress

WordPress version 2.5.1 släpps till följd av att en kryptobugg i Cookie-hanteringen gör det möjligt beräkna den HMAC som används för säkerställa att rätt användare är inloggad:

The authentication mechanism assumes that an attacker cannot calculate the HMAC. However, this assumption is broken because the two inputs used to calculate the HMAC (username and expiration) are not clearly delineated.

Läs mer om buggen här:

Undrar du vad HMAC är? Förklaring enligt Wikipedia:

In cryptography, a keyed-Hash Message Authentication Code (HMAC or KHMAC), is a type of message authentication code (MAC) calculated using a specific algorithm involving a cryptographic hash function in combination with a secret key. As with any MAC, it may be used to simultaneously verify both the data integrity and the authenticity of a message. Any iterative cryptographic hash function, such as MD5 or SHA-1, may be used in the calculation of an HMAC; the resulting MAC algorithm is termed HMAC-MD5 or HMAC-SHA-1 accordingly. The cryptographic strength of the HMAC depends upon the cryptographic strength of the underlying hash function, on the size and quality of the key and the size of the hash output length in bits.