After successfully installing the libsodium PHP extension, you can immediately begin using it to develop secure web applications.
Deciding which libsodium feature to use for a given purpose is relatively straightforward, provided you keep these guidelines in mind:
- Prioritize the basic features (e.g.
crypto_box
andcrypto_secretbox
) over advanced features (e.g.crypto_stream_xor
). - If a more appropriate feature exists (e.g.
crypto_pwhash_*
instead ofcrypto_generichash
), don't use a less appropriate one. - Avoid deploying or publishing your own cryptographic constructions
(e.g. generally, you should use
crypto_secretbox
instead ofcrypto_stream_xor
thencrypto_auth
).
This is a comprehensive list of all the functions available in the libsodium PHP extension.
- \Sodium\bin2hex()
- \Sodium\compare()
- \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_aes256gcm_decrypt()
- \Sodium\crypto_aead_aes256gcm_encrypt()
- \Sodium\crypto_aead_aes256gcm_is_available()
- \Sodium\crypto_auth()
- \Sodium\crypto_auth_verify()
- \Sodium\crypto_box()
- \Sodium\crypto_box_keypair()
- \Sodium\crypto_box_keypair_from_secretkey_and_publickey()
- \Sodium\crypto_box_open()
- \Sodium\crypto_box_publickey()
- \Sodium\crypto_box_publickey_from_secretkey()
- \Sodium\crypto_box_seal()
- \Sodium\crypto_box_seal_open()
- \Sodium\crypto_box_seed_keypair
- \Sodium\crypto_box_secretkey()
- \Sodium\crypto_kx()
- \Sodium\crypto_generichash()
- \Sodium\crypto_generichash_init()
- \Sodium\crypto_generichash_update()
- \Sodium\crypto_generichash_final()
- \Sodium\crypto_pwhash()
- \Sodium\crypto_pwhash_str()
- \Sodium\crypto_pwhash_str_verify()
- \Sodium\crypto_pwhash_scryptsalsa208sha256()
- \Sodium\crypto_pwhash_scryptsalsa208sha256_str()
- \Sodium\crypto_pwhash_scryptsalsa208sha256_str_verify()
- \Sodium\crypto_scalarmult()
- \Sodium\crypto_scalarmult_base()
- \Sodium\crypto_secretbox()
- \Sodium\crypto_secretbox_open()
- \Sodium\crypto_shorthash()
- \Sodium\crypto_sign()
- \Sodium\crypto_sign_detached()
- \Sodium\crypto_sign_ed25519_sk_to_curve25519()
- \Sodium\crypto_sign_ed25519_pk_to_curve25519()
- \Sodium\crypto_sign_keypair()
- \Sodium\crypto_sign_keypair_from_secretkey_and_publickey()
- \Sodium\crypto_sign_open()
- \Sodium\crypto_sign_publickey()
- \Sodium\crypto_sign_secretkey()
- \Sodium\crypto_sign_seed_keypair
- \Sodium\crypto_sign_verify_detached()
- \Sodium\crypto_stream()
- \Sodium\crypto_stream_xor()
- \Sodium\randombytes_buf()
- \Sodium\randombytes_random16()
- \Sodium\randombytes_uniform()
- \Sodium\hex2bin()
- \Sodium\increment()
- \Sodium\library_version_major()
- \Sodium\library_version_minor()
- \Sodium\memcmp()
- \Sodium\memzero()
- \Sodium\version_string()
Constant | Value |
---|---|
\Sodium\CRYPTO_AEAD_AES256GCM_KEYBYTES
|
32 |
\Sodium\CRYPTO_AEAD_AES256GCM_NSECBYTES
|
0 |
\Sodium\CRYPTO_AEAD_AES256GCM_NPUBBYTES
|
12 |
\Sodium\CRYPTO_AEAD_AES256GCM_ABYTES
|
16 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
|
32 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
|
0 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
|
8 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
|
16 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
|
32 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
|
0 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
|
12 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
|
16 |
\Sodium\CRYPTO_AUTH_BYTES
|
32 |
\Sodium\CRYPTO_AUTH_KEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_SEALBYTES
|
16 |
\Sodium\CRYPTO_BOX_SECRETKEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_KEYPAIRBYTES
|
64 |
\Sodium\CRYPTO_BOX_MACBYTES
|
16 |
\Sodium\CRYPTO_BOX_NONCEBYTES
|
24 |
\Sodium\CRYPTO_BOX_SEEDBYTES
|
32 |
\Sodium\CRYPTO_KX_BYTES
|
32 |
\Sodium\CRYPTO_KX_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_KX_SECRETKEYBYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_BYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_BYTES_MIN
|
16 |
\Sodium\CRYPTO_GENERICHASH_BYTES_MAX
|
64 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES_MIN
|
16 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES_MAX
|
64 |
\Sodium\CRYPTO_PWHASH_SALTBYTES
|
16 |
\Sodium\CRYPTO_PWHASH_STRPREFIX
|
|
\Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
|
4 |
\Sodium\CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
|
33554432 |
\Sodium\CRYPTO_PWHASH_OPSLIMIT_MODERATE
|
6 |
\Sodium\CRYPTO_PWHASH_MEMLIMIT_MODERATE
|
134217728 |
\Sodium\CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
|
8 |
\Sodium\CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
|
536870912 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
|
32 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
|
|
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
|
534288 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
|
16777216 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
|
33554432 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
|
1073741824 |
\Sodium\CRYPTO_SCALARMULT_BYTES
|
32 |
\Sodium\CRYPTO_SCALARMULT_SCALARBYTES
|
32 |
\Sodium\CRYPTO_SHORTHASH_BYTES
|
8 |
\Sodium\CRYPTO_SHORTHASH_KEYBYTES
|
16 |
\Sodium\CRYPTO_SECRETBOX_KEYBYTES
|
32 |
\Sodium\CRYPTO_SECRETBOX_MACBYTES
|
16 |
\Sodium\CRYPTO_SECRETBOX_NONCEBYTES
|
24 |
\Sodium\CRYPTO_SIGN_BYTES
|
64 |
\Sodium\CRYPTO_SIGN_SEEDBYTES
|
32 |
\Sodium\CRYPTO_SIGN_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_SIGN_SECRETKEYBYTES
|
64 |
\Sodium\CRYPTO_SIGN_KEYPAIRBYTES
|
96 |
\Sodium\CRYPTO_STREAM_KEYBYTES
|
32 |
\Sodium\CRYPTO_STREAM_NONCEBYTES
|
24 |