Encryption Quick Start

DBX에서 암호화를 사용하는 가장 빠른 방법입니다.

1. 암호화된 데이터베이스 생성

use dbx_core::Database;
use dbx_core::storage::encryption::EncryptionConfig;

let enc = EncryptionConfig::from_password("my-secret-password");
let db = Database::open_encrypted("./secure-data", enc)?;

2. 데이터 삽입 및 조회

// 데이터 삽입 (자동 암호화)
db.insert("secrets", b"api-key", b"sk-1234567890")?;

// 데이터 조회 (자동 복호화)
let value = db.get("secrets", b"api-key")?;

3. 암호화 알고리즘 선택

use dbx_core::storage::encryption::Algorithm;

// AES-256-GCM-SIV (기본값)
let enc = EncryptionConfig::new(
    b"32-byte-key-here-32-byte-key-he",
    Algorithm::Aes256GcmSiv,
);

// ChaCha20-Poly1305
let enc = EncryptionConfig::new(
    b"32-byte-key-here-32-byte-key-he",
    Algorithm::ChaCha20Poly1305,
);

4. 키 회전

// 기존 키로 열기
let db = Database::open_encrypted("./data", old_enc)?;

// 새 키로 회전
let new_enc = EncryptionConfig::from_password("new-password");
db.rotate_key(new_enc)?;

5. 완전한 예제

use dbx_core::Database;
use dbx_core::storage::encryption::EncryptionConfig;

fn main() -> dbx_core::DbxResult<()> {
    // 암호화된 데이터베이스 생성
    let enc = EncryptionConfig::from_password("super-secret");
    let db = Database::open_encrypted("./secure-db", enc)?;
    
    // 민감한 데이터 저장
    db.insert("users", b"user:1", b"Alice:alice@example.com")?;
    db.insert("api-keys", b"service-1", b"sk-1234567890")?;
    
    // 데이터 조회
    if let Some(value) = db.get("users", b"user:1")? {
        println!("User: {}", String::from_utf8_lossy(&value));
    }
    
    // 암호화 상태 확인
    assert!(db.is_encrypted());
    
    Ok(())
}

Next Steps


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.