Downloads
Documentation
Get Involved
Help
Getting Started
Introduction
A simple tutorial
Language Reference
Basic syntax
Types
Variables
Constants
Expressions
Operators
Control Structures
Functions
Classes and Objects
Namespaces
Enumerations
Errors
Exceptions
Fibers
Generators
Attributes
References Explained
Predefined Variables
Predefined Exceptions
Predefined Interfaces and Classes
Predefined Attributes
Context options and parameters
Supported Protocols and Wrappers
Security
Introduction
General considerations
Installed as CGI binary
Installed as an Apache module
Session Security
Filesystem Security
Database Security
Error Reporting
User Submitted Data
Hiding PHP
Keeping Current
Features
HTTP authentication with PHP
Cookies
Sessions
Handling file uploads
Using remote files
Connection handling
Persistent Database Connections
Command line usage
Garbage Collection
DTrace Dynamic Tracing
Function Reference
Affecting PHP's Behaviour
Audio Formats Manipulation
Authentication Services
Command Line Specific Extensions
Compression and Archive Extensions
Cryptography Extensions
Database Extensions
Date and Time Related Extensions
File System Related Extensions
Human Language and Character Encoding Support
Image Processing and Generation
Mail Related Extensions
Mathematical Extensions
Non-Text MIME Output
Process Control Extensions
Other Basic Extensions
Other Services
Search Engine Extensions
Server Specific Extensions
Session Extensions
Text Processing
Variable and Type Related Extensions
Web Services
Windows Only Extensions
XML Manipulation
GUI Extensions
Keyboard Shortcuts
?
This help
j
Next menu item
k
Previous menu item
g p
Previous man page
g n
Next man page
G
Scroll to bottom
g g
Scroll to top
g h
Goto homepage
g s
Goto search
(current page)
/
Focus search box
sodium_add »
« Predefined Constants
PHP Manual
Function Reference
Cryptography Extensions
Sodium
Change language:
English
German
Spanish
French
Italian
Japanese
Brazilian Portuguese
Russian
Turkish
Ukrainian
Chinese (Simplified)
Other
Sodium Functions
Table of Contents
sodium_add
— Add large numbers
sodium_base642bin
— Decodes a base64-encoded string into raw binary.
sodium_bin2base64
— Encodes a raw binary string with base64.
sodium_bin2hex
— Encode to hexadecimal
sodium_compare
— Compare large numbers
sodium_crypto_aead_aes256gcm_decrypt
— Verify then decrypt a message with AES-256-GCM
sodium_crypto_aead_aes256gcm_encrypt
— Encrypt then authenticate with AES-256-GCM
sodium_crypto_aead_aes256gcm_is_available
— Check if hardware supports AES256-GCM
sodium_crypto_aead_aes256gcm_keygen
— Generate a random AES-256-GCM key
sodium_crypto_aead_chacha20poly1305_decrypt
— Verify then decrypt with ChaCha20-Poly1305
sodium_crypto_aead_chacha20poly1305_encrypt
— Encrypt then authenticate with ChaCha20-Poly1305
sodium_crypto_aead_chacha20poly1305_ietf_decrypt
— Verify that the ciphertext includes a valid tag
sodium_crypto_aead_chacha20poly1305_ietf_encrypt
— Encrypt a message
sodium_crypto_aead_chacha20poly1305_ietf_keygen
— Generate a random ChaCha20-Poly1305 (IETF) key.
sodium_crypto_aead_chacha20poly1305_keygen
— Generate a random ChaCha20-Poly1305 key.
sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
— (Preferred) Verify then decrypt with XChaCha20-Poly1305
sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
— (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
sodium_crypto_aead_xchacha20poly1305_ietf_keygen
— Generate a random XChaCha20-Poly1305 key.
sodium_crypto_auth
— Compute a tag for the message
sodium_crypto_auth_keygen
— Generate a random key for sodium_crypto_auth
sodium_crypto_auth_verify
— Verifies that the tag is valid for the message
sodium_crypto_box
— Authenticated public-key encryption
sodium_crypto_box_keypair
— Randomly generate a secret key and a corresponding public key
sodium_crypto_box_keypair_from_secretkey_and_publickey
— Create a unified keypair string from a secret key and public key
sodium_crypto_box_open
— Authenticated public-key decryption
sodium_crypto_box_publickey
— Extract the public key from a crypto_box keypair
sodium_crypto_box_publickey_from_secretkey
— Calculate the public key from a secret key
sodium_crypto_box_seal
— Anonymous public-key encryption
sodium_crypto_box_seal_open
— Anonymous public-key decryption
sodium_crypto_box_secretkey
— Extracts the secret key from a crypto_box keypair
sodium_crypto_box_seed_keypair
— Deterministically derive the key pair from a single key
sodium_crypto_core_ristretto255_add
— Adds an element
sodium_crypto_core_ristretto255_from_hash
— Maps a vector
sodium_crypto_core_ristretto255_is_valid_point
— Determines if a point on the ristretto255 curve
sodium_crypto_core_ristretto255_random
— Generates a random key
sodium_crypto_core_ristretto255_scalar_add
— Adds a scalar value
sodium_crypto_core_ristretto255_scalar_complement
— The sodium_crypto_core_ristretto255_scalar_complement purpose
sodium_crypto_core_ristretto255_scalar_invert
— Inverts a scalar value
sodium_crypto_core_ristretto255_scalar_mul
— Multiplies a scalar value
sodium_crypto_core_ristretto255_scalar_negate
— Negates a scalar value
sodium_crypto_core_ristretto255_scalar_random
— Generates a random key
sodium_crypto_core_ristretto255_scalar_reduce
— Reduces a scalar value
sodium_crypto_core_ristretto255_scalar_sub
— Subtracts a scalar value
sodium_crypto_core_ristretto255_sub
— Subtracts an element
sodium_crypto_generichash
— Get a hash of the message
sodium_crypto_generichash_final
— Complete the hash
sodium_crypto_generichash_init
— Initialize a hash for streaming
sodium_crypto_generichash_keygen
— Generate a random generichash key
sodium_crypto_generichash_update
— Add message to a hash
sodium_crypto_kdf_derive_from_key
— Derive a subkey
sodium_crypto_kdf_keygen
— Generate a random root key for the KDF interface
sodium_crypto_kx_client_session_keys
— Calculate the client-side session keys.
sodium_crypto_kx_keypair
— Creates a new sodium keypair
sodium_crypto_kx_publickey
— Extract the public key from a crypto_kx keypair
sodium_crypto_kx_secretkey
— Extract the secret key from a crypto_kx keypair.
sodium_crypto_kx_seed_keypair
— Description
sodium_crypto_kx_server_session_keys
— Calculate the server-side session keys.
sodium_crypto_pwhash
— Derive a key from a password, using Argon2
sodium_crypto_pwhash_scryptsalsa208sha256
— Derives a key from a password, using scrypt
sodium_crypto_pwhash_scryptsalsa208sha256_str
— Get an ASCII encoded hash
sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
— Verify that the password is a valid password verification string
sodium_crypto_pwhash_str
— Get an ASCII-encoded hash
sodium_crypto_pwhash_str_needs_rehash
— Determine whether or not to rehash a password
sodium_crypto_pwhash_str_verify
— Verifies that a password matches a hash
sodium_crypto_scalarmult
— Compute a shared secret given a user's secret key and another user's public key
sodium_crypto_scalarmult_base
— Alias of sodium_crypto_box_publickey_from_secretkey
sodium_crypto_scalarmult_ristretto255
— Computes a shared secret
sodium_crypto_scalarmult_ristretto255_base
— Calculates the public key from a secret key
sodium_crypto_secretbox
— Authenticated shared-key encryption
sodium_crypto_secretbox_keygen
— Generate random key for sodium_crypto_secretbox
sodium_crypto_secretbox_open
— Authenticated shared-key decryption
sodium_crypto_secretstream_xchacha20poly1305_init_pull
— Initialize a secretstream context for decryption
sodium_crypto_secretstream_xchacha20poly1305_init_push
— Initialize a secretstream context for encryption
sodium_crypto_secretstream_xchacha20poly1305_keygen
— Generate a random secretstream key.
sodium_crypto_secretstream_xchacha20poly1305_pull
— Decrypt a chunk of data from an encrypted stream
sodium_crypto_secretstream_xchacha20poly1305_push
— Encrypt a chunk of data so that it can safely be decrypted in a streaming API
sodium_crypto_secretstream_xchacha20poly1305_rekey
— Explicitly rotate the key in the secretstream state
sodium_crypto_shorthash
— Compute a short hash of a message and key
sodium_crypto_shorthash_keygen
— Get random bytes for key
sodium_crypto_sign
— Sign a message
sodium_crypto_sign_detached
— Sign the message
sodium_crypto_sign_ed25519_pk_to_curve25519
— Convert an Ed25519 public key to a Curve25519 public key
sodium_crypto_sign_ed25519_sk_to_curve25519
— Convert an Ed25519 secret key to a Curve25519 secret key
sodium_crypto_sign_keypair
— Randomly generate a secret key and a corresponding public key
sodium_crypto_sign_keypair_from_secretkey_and_publickey
— Join a secret key and public key together
sodium_crypto_sign_open
— Check that the signed message has a valid signature
sodium_crypto_sign_publickey
— Extract the Ed25519 public key from a keypair
sodium_crypto_sign_publickey_from_secretkey
— Extract the Ed25519 public key from the secret key
sodium_crypto_sign_secretkey
— Extract the Ed25519 secret key from a keypair
sodium_crypto_sign_seed_keypair
— Deterministically derive the key pair from a single key
sodium_crypto_sign_verify_detached
— Verify signature for the message
sodium_crypto_stream
— Generate a deterministic sequence of bytes from a seed
sodium_crypto_stream_keygen
— Generate a random sodium_crypto_stream key.
sodium_crypto_stream_xchacha20
— Expands the key and nonce into a keystream of pseudorandom bytes
sodium_crypto_stream_xchacha20_keygen
— Returns a secure random key
sodium_crypto_stream_xchacha20_xor
— Encrypts a message using a nonce and a secret key (no authentication)
sodium_crypto_stream_xchacha20_xor_ic
— Encrypts a message using a nonce and a secret key (no authentication)
sodium_crypto_stream_xor
— Encrypt a message without authentication
sodium_hex2bin
— Decodes a hexadecimally encoded binary string
sodium_increment
— Increment large number
sodium_memcmp
— Test for equality in constant-time
sodium_memzero
— Overwrite a string with NUL characters
sodium_pad
— Add padding data
sodium_unpad
— Remove padding data
Improve This Page
Learn How To Improve This Page
•
Submit a Pull Request
•
Report a Bug
+
add a note
User Contributed Notes
There are no user contributed notes for this page.