Kategori:Kryptografi-extensioner
Kryptografi-extensioner i PHP
PHP erbjuder flera kryptografiska extensioner som gör det möjligt för utvecklare att implementera säker kryptering, dekryptering, hashning och andra kryptografiska funktioner i sina applikationer. Denna artikel beskriver de mest använda kryptografi-extensionerna i PHP och hur man använder dem.
OpenSSL
OpenSSL-extensionen ger tillgång till OpenSSL-bibliotekets kraftfulla kryptografiska funktioner direkt i PHP. Den stöder en mängd olika krypterings- och hash-algoritmer.
Installation
OpenSSL är vanligtvis installerat som standard i PHP. För att kontrollera om det är aktiverat:
<?php phpinfo(); ?>
Sök efter OpenSSL i outputen.
Användning
Exempel på hur man krypterar och dekrypterar data med OpenSSL:
<?php $data = "Hemlig data"; $password = "starktLösenord"; $method = "AES-256-CBC"; // Generera en initialiseringsvektor $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method)); // Kryptera $encrypted = openssl_encrypt($data, $method, $password, 0, $iv); // Dekryptera $decrypted = openssl_decrypt($encrypted, $method, $password, 0, $iv); ?>
Sodium
Sodium-extensionen (libsodium) introducerades i PHP 7.2 och erbjuder moderna och säkra kryptografiska funktioner.
Installation
Sodium är inbyggd i PHP från och med version 7.2. För äldre versioner kan den installeras via PECL.
Användning
Exempel på lösenordshashning med Sodium:
<?php $password = "starktLösenord"; // Hasha lösenordet $hash = sodium_crypto_pwhash_str( $password, SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE ); // Verifiera lösenordet if (sodium_crypto_pwhash_str_verify($hash, $password)) { echo "Lösenordet är korrekt."; } else { echo "Felaktigt lösenord."; } ?>
Hash
Hash-extensionen ger funktioner för generering och jämförelse av hash-värden med algoritmer som MD5, SHA1, SHA256 med flera.
Användning
Generera ett SHA-256-hash:
<?php $data = "Hemlig data"; $hash = hash('sha256', $data); ?>
Password Hashing API
Introducerat i PHP 5.5, erbjuder det ett enkelt sätt att hantera lösenordshashning.
Användning
<?php $password = "starktLösenord"; // Hasha lösenordet $hash = password_hash($password, PASSWORD_DEFAULT); // Verifiera lösenordet if (password_verify($password, $hash)) { echo "Lösenordet är korrekt."; } else { echo "Felaktigt lösenord."; } ?>
Mcrypt (avvecklad)
Mcrypt-extensionen avvecklades i PHP 7.1 och bör inte användas i nya projekt. Använd istället OpenSSL eller Sodium.
Referenser
- [PHP Officiell Dokumentation](https://www.php.net/manual/sv/)
- [OpenSSL](https://www.openssl.org/)
- [Libsodium Dokumentation](https://doc.libsodium.org/)
- [PHP Password Hashing](https://www.php.net/manual/sv/book.password.php)
Se även
- [Säker kodning i PHP](https://www.php.net/manual/sv/security.php)
- [Cryptography Best Practices](https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet)
Sidor i kategorin "Kryptografi-extensioner"
Följande 200 sidor (av totalt 240) finns i denna kategori.
(föregående sida) (nästa sida)E
H
- hash algos()
- hash copy()
- hash equals()
- hash file()
- hash final()
- HASH hash
- hash hkdf()
- hash hmac algos()
- hash hmac file()
- hash hmac()
- hash init()
- hash pbkdf2()
- hash update stream()
- hash update()
- Hash — HASH Message Digest Framework
- hash()
- hash.constants
- Hash.exempel
- hash.Installation
- Hash.setup
- HashContext:: construct
M
O
- openssl cipher iv length()
- openssl cipher key length()
- openssl cms decrypt()
- openssl cms encrypt()
- openssl cms read()
- openssl cms sign()
- openssl cms verify()
- openssl csr export to file()
- openssl csr export()
- openssl csr get public key()
- openssl csr get subject()
- openssl csr new()
- openssl csr sign()
- openssl decrypt()
- openssl dh compute key()
- openssl digest()
- openssl encrypt()
- openssl error string()
- openssl free key()
- openssl get cert locations()
- openssl get cipher methods()
- openssl get curve names()
- openssl get md methods()
- openssl get privatekey()
- openssl get publickey()
- openssl open()
- openssl pbkdf2()
- openssl pkcs12 export to file()
- openssl pkcs12 export()
- openssl pkcs12 read()
- openssl pkcs7 decrypt()
- openssl pkcs7 encrypt()
- openssl pkcs7 read()
- openssl pkcs7 sign()
- openssl pkcs7 verify()
- openssl pkey derive()
- openssl pkey export to file()
- openssl pkey export()
- openssl pkey free()
- openssl pkey get details()
- openssl pkey get private()
- openssl pkey get public()
- openssl pkey new()
- openssl private decrypt()
- openssl private encrypt()
- openssl public decrypt()
- openssl public encrypt()
- openssl random pseudo bytes()
- openssl seal()
- openssl sign()
- openssl spki export challenge()
- openssl spki export()
- openssl spki new()
- openssl spki verify()
- openssl verify()
- openssl x509 check private key()
- openssl x509 checkpurpose()
- openssl x509 export to file()
- openssl x509 export()
- openssl x509 fingerprint()
- openssl x509 free()
- openssl x509 parse()
- openssl x509 read()
- openssl x509 verify()
- OpenSSL-funktioner
- openssl.requirements
- OpenSSLCertificate — OpenSSLCertificate-klassen
- OpenSSLConst
P
R
- ref.hash
- Resurstyper
- Rnp
- rnp backend string()
- rnp backend version()
- rnp decrypt()
- rnp dump packets to json()
- rnp dump packets()
- rnp ffi create()
- rnp ffi destroy()
- rnp ffi set pass provider()
- rnp import keys()
- rnp import signatures()
- rnp key export autocrypt()
- rnp key export revocation()
- rnp key export()
- rnp key get info()
- rnp key remove()
- rnp key revoke()
- rnp list keys()
- rnp load keys from path()
- rnp load keys()
- rnp locate key()
- rnp op encrypt()
- rnp op generate key()
- rnp op sign cleartext()
- rnp op sign detached()
- rnp op sign()
- rnp op verify detached()
- rnp op verify()
- rnp save keys to path()
- rnp save keys()
- rnp supported features()
- rnp version string full()
- rnp version string()
- Rnp-funktioner
- rnp.const
- rnp.Installation
- RNP.intro
- rnp.Requirements
- rnp.setup
- RnpFFI
S
- Sodium
- sodium add()
- sodium base642bin()
- sodium bin2base64()
- sodium bin2hex()
- sodium compare()
- sodium crypto aead aegis128l decrypt()
- sodium crypto aead aegis128l encrypt()
- sodium crypto aead aegis128l keygen()
- sodium crypto aead aegis256 decrypt()
- sodium crypto aead aegis256 encrypt()
- sodium crypto aead aegis256 keygen()
- sodium crypto aead aes256gcm decrypt()
- sodium crypto aead aes256gcm encrypt()
- sodium crypto aead aes256gcm is available()
- sodium crypto aead aes256gcm keygen()
- sodium crypto aead chacha20poly1305 decrypt()
- sodium crypto aead chacha20poly1305 encrypt()
- sodium crypto aead chacha20poly1305 ietf decrypt()
- sodium crypto aead chacha20poly1305 ietf encrypt()
- sodium crypto aead chacha20poly1305 ietf keygen()
- sodium crypto aead xchacha20poly1305 ietf decrypt()
- sodium crypto aead xchacha20poly1305 ietf encrypt()
- sodium crypto aead xchacha20poly1305 ietf keygen
- sodium crypto aead xchacha20poly1305 ietf keygen()
- sodium crypto auth keygen()
- sodium crypto auth verify()
- sodium crypto auth()
- sodium crypto box keypair from secretkey and publickey()
- sodium crypto box keypair()
- sodium crypto box open()
- sodium crypto box publickey from secretkey()
- sodium crypto box publickey()
- sodium crypto box seal open()
- sodium crypto box seal()
- sodium crypto box secretkey()
- sodium crypto box seed keypair()