# sqlcipher/sqlcipher

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sqlcipher-sqlcipher).**

7,173 stars · 1,390 forks · C · BSD-3-Clause

## Links

- GitHub: https://github.com/sqlcipher/sqlcipher
- Homepage: https://www.zetetic.net/sqlcipher/
- awesome-repositories: https://awesome-repositories.com/repository/sqlcipher-sqlcipher.md

## Description

SQLCipher is an encrypted SQLite database engine and secure relational database that provides transparent AES-256 encryption for database files and stored data. It functions as a cryptographic storage engine that requires a passphrase or binary key to unlock and access content.

The engine ensures data confidentiality through page-level encryption and protects data integrity using cryptographic hashes to detect unauthorized modifications. It includes capabilities for encryption key rotation to update passphrases and secure memory locking to prevent sensitive keys from being swapped from RAM to disk.

The project covers a broad set of capabilities including database file management, SQL query execution via a command-line interface, and support for external engine extensions. It also provides mechanisms for cross-database data migration and database format migration to maintain compatibility between versions.

The source code can be compiled into a functional engine or command-line tool for Unix and Windows platforms using a C compiler.

## Tags

### Security & Cryptography

- [Database Page Encryption](https://awesome-repositories.com/f/security-cryptography/full-disk-encryption/database-page-encryption.md) — Provides transparent AES-256 encryption of individual database pages to ensure data is unreadable without the key.
- [Encrypted Database Managers](https://awesome-repositories.com/f/security-cryptography/data-encryption/encrypted-database-managers.md) — Provides an interface for creating and accessing password-protected database files using high-grade encryption. ([source](https://github.com/sqlcipher/sqlcipher#readme))
- [Local Data Storage](https://awesome-repositories.com/f/security-cryptography/local-data-storage.md) — Enables secure local persistence of application data using passphrase-based encryption and key derivation.
- [Passphrase-Based Database Access](https://awesome-repositories.com/f/security-cryptography/passphrase-based-database-access.md) — Requires a passphrase or binary key through key derivation to unlock and access encrypted database content. ([source](https://github.com/sqlcipher/sqlcipher/blob/master/README.md))
- [Key Derivation Functions](https://awesome-repositories.com/f/security-cryptography/password-management/key-derivation-functions.md) — Uses key derivation functions to transform user passphrases into strong cryptographic keys for database encryption.
- [Integrity Verifications](https://awesome-repositories.com/f/security-cryptography/security/cryptography-and-secrets/cryptographic-primitives-management/cryptographic-hash-computations/data-integrity-identifiers/integrity-verifications.md) — Implements page-level HMACs to detect unauthorized modifications or data corruption within the database file.
- [Application Data Security](https://awesome-repositories.com/f/security-cryptography/application-data-security.md) — Provides a secure way to store application settings and user data in encrypted files to prevent unauthorized access.
- [Cryptographic Providers](https://awesome-repositories.com/f/security-cryptography/cryptographic-providers.md) — Supports pluggable cryptographic providers, allowing the engine to use different compliant encryption libraries at build time.
- [Data Protection](https://awesome-repositories.com/f/security-cryptography/data-protection.md) — Protects sensitive information by detecting unauthorized tampering and sanitizing memory to prevent leaks. ([source](https://github.com/sqlcipher/sqlcipher#readme))
- [Encryption Key Management](https://awesome-repositories.com/f/security-cryptography/encryption-key-management.md) — Provides capabilities for updating the security keys or passphrases of an existing encrypted database.

### Data & Databases

- [Secure](https://awesome-repositories.com/f/data-databases/data-persistence/secure.md) — Ensures sensitive information is stored securely using cryptographic verification and memory locking to prevent leaks.
- [Encrypted Implementations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/embedded-databases/sqlite-databases/encrypted-implementations.md) — Provides an encrypted extension of the SQLite engine with transparent 256-bit AES encryption.
- [Relational Data Stores](https://awesome-repositories.com/f/data-databases/relational-data-stores.md) — Implements a relational data store that requires cryptographic keys to unlock and access structured content.
- [Storage Engine Forks](https://awesome-repositories.com/f/data-databases/sqlite-drivers/sqlite-storage-adapters/storage-engine-forks.md) — Extends the standard SQLite B-tree and pager logic to integrate transparent encryption directly into the storage layer.
- [Cryptographic](https://awesome-repositories.com/f/data-databases/storage-engines/cryptographic.md) — Provides a specialized storage engine that protects data integrity via page hashes and prevents key leakage through secure memory handling.
- [SQL Query Execution](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-operations/sql-query-execution.md) — Enables the execution, formatting, and management of SQL queries through a terminal interface or batch scripts. ([source](https://github.com/sqlcipher/sqlcipher/blob/master/sqlite3.1))

### Operating Systems & Systems Programming

- [Memory Locking](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management-systems/memory-locking.md) — Prevents sensitive encryption keys from being swapped to disk by locking memory pages in the OS. ([source](https://github.com/sqlcipher/sqlcipher/blob/master/CHANGELOG.md))

### Part of an Awesome List

- [Data Persistence](https://awesome-repositories.com/f/awesome-lists/data/data-persistence.md) — Provides 256-bit AES encryption for SQLite databases.
- [Security And Privacy](https://awesome-repositories.com/f/awesome-lists/security/security-and-privacy.md) — Provides AES-256 encryption for SQLite database files.
