Sodium
Sodium (암호화)
Sodium은 암호화, 복호화, 서명, 패스워드 해싱 등을 위한 현대적이고 사용하기 쉬운 소프트웨어 라이브러리예요. PHP의 Sodium 확장은 libsodium의 기능을 제공해요.
본문
Sodium은 암호화, 복호화, 서명, 패스워드 해싱 등을 위한 현대적이고 사용하기 쉬운 소프트웨어 라이브러리예요. 그 목표는 더 높은 수준의 암호화 도구를 만드는 데 필요한 모든 핵심 연산을 제공하는 것이에요.
주요 기능 분류
Sodium 함수가 워낙 많아 기능별로 나누면 이렇게 정리돼요.
대칭 암호화 (비밀 키)
sodium_crypto_secretbox,sodium_crypto_secretbox_open— 인증된 공유 키 암호화/복호화sodium_crypto_secretstream_*— 스트리밍 암호화/복호화sodium_crypto_stream_*— 논스 기반 암호화
AEAD(인증 암호화)
sodium_crypto_aead_chacha20poly1305_*— ChaCha20-Poly1305sodium_crypto_aead_xchacha20poly1305_ietf_*— (권장) XChaCha20-Poly1305sodium_crypto_aead_aes256gcm_*— AES-256-GCMsodium_crypto_aead_aegis128l_*,sodium_crypto_aead_aegis256_*— AEGIS
비대칭 암호화 (공개 키)
sodium_crypto_box,sodium_crypto_box_open— 인증된 공개 키 암호화/복호화sodium_crypto_box_seal,sodium_crypto_box_seal_open— 익명 공개 키 암호화/복호화
서명
sodium_crypto_sign,sodium_crypto_sign_detached,sodium_crypto_sign_open,sodium_crypto_sign_verify_detached— Ed25519 서명
패스워드 해싱·KDF
sodium_crypto_pwhash,sodium_crypto_pwhash_str,sodium_crypto_pwhash_str_verify,sodium_crypto_pwhash_str_needs_rehash— Argon2 기반sodium_crypto_pwhash_scryptsalsa208sha256_*— scrypt 기반sodium_crypto_kdf_derive_from_key,sodium_crypto_kdf_keygen— 키 파생sodium_crypto_kx_*— 키 교환
해시·인증·인코딩
sodium_crypto_generichash*— BLAKE2b 기반 일반 해시sodium_crypto_auth,sodium_crypto_auth_verify— 메시지 인증sodium_crypto_shorthash— 짧은 해시sodium_bin2hex,sodium_hex2bin,sodium_base642bin,sodium_bin2base64— 인코딩 변환
상수 시간 연산·메모리
sodium_memcmp— 상수 시간 동등 비교sodium_memzero— 문자열을 NUL로 덮어쓰기sodium_pad,sodium_unpad— 패딩 추가/제거sodium_add,sodium_increment,sodium_compare— 큰 수 연산
클래스
SodiumException— Sodium 예외 클래스
더 알아보기
- PHP: Sodium 함수 - Manual — 전체 레퍼런스
- libsodium — Sodium 공식 문서