Convert Figma logo to code with AI

keepassxreboot logokeepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.

21,040
1,454
21,040
756

Top Related Projects

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

15,131

Bitwarden infrastructure/backend (API, database, Docker, etc).

12,237

Free cross-platform password manager compatible with KeePass

:key: Cross-Platform Passwords & Secrets Vault

2,657

A modern, open source password manager for individuals and teams.

Quick Overview

KeePassXC is an open-source, cross-platform password manager and secure data storage application. It is a community-driven fork of KeePassX, offering enhanced features and regular updates to provide users with a robust solution for managing their sensitive information.

Pros

  • Strong encryption and security features, including AES-256 encryption and key file support
  • Cross-platform compatibility (Windows, macOS, Linux)
  • Active development and regular updates from the community
  • Extensive feature set, including password generation, auto-type, and browser integration

Cons

  • Steeper learning curve compared to some cloud-based password managers
  • No built-in cloud synchronization (requires third-party solutions)
  • User interface may feel less modern compared to some commercial alternatives
  • Limited mobile support (primarily desktop-focused)

Getting Started

To get started with KeePassXC:

  1. Download the appropriate installer for your operating system from the official website.
  2. Install KeePassXC following the installation wizard instructions.
  3. Launch KeePassXC and create a new database or open an existing one.
  4. Set a strong master password and/or key file for your database.
  5. Begin adding entries for your passwords and sensitive information.

For developers interested in contributing to KeePassXC:

  1. Fork the KeePassXC repository on GitHub.
  2. Clone your forked repository:
    git clone https://github.com/your-username/keepassxc.git
    
  3. Follow the building instructions in the project wiki to set up your development environment.
  4. Make your changes, commit them, and submit a pull request to contribute to the project.

Competitor Comparisons

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Pros of Vaultwarden

  • Web-based interface, accessible from any device with a browser
  • Self-hosted solution, giving users full control over their data
  • Supports multiple users and organizations

Cons of Vaultwarden

  • Requires server setup and maintenance
  • Less mature project compared to KeePassXC
  • May have fewer advanced features for local password management

Code Comparison

KeePassXC (C++):

void Database::setKey(const CompositeKey& key)
{
    m_key = key;
    m_kdf->randomize();
    m_masterSeed = QByteArray(32, '\0');
    Tools::randomize(m_masterSeed);
}

Vaultwarden (Rust):

pub fn hash_password(password: &str, iterations: u32) -> String {
    let salt = crypto::get_random(64);
    let mut hasher = Pbkdf2 {
        iter: iterations,
        hash_type: HashType::Sha256,
    };
    hasher.hash_password(password.as_bytes(), &salt).to_hex()
}

Both projects focus on secure password management, but their implementations differ. KeePassXC is a desktop application written in C++, while Vaultwarden is a web-based solution written in Rust. The code snippets show different approaches to password hashing and key generation, reflecting their distinct architectures and use cases.

15,131

Bitwarden infrastructure/backend (API, database, Docker, etc).

Pros of Bitwarden

  • Cloud-based solution with easy synchronization across devices
  • Offers a self-hosted option for organizations requiring full control
  • Supports multiple users and organizations with robust sharing features

Cons of Bitwarden

  • Requires internet connection for full functionality (unless self-hosted)
  • Less privacy-focused than KeePassXC due to cloud storage
  • More complex setup for self-hosting compared to KeePassXC's local storage

Code Comparison

KeePassXC (C++):

void Database::setKey(const CompositeKey& key)
{
    m_key = key;
    m_kdf->randomize();
    m_masterSeed = QByteArray(32, '\0');
    Tools::randomize(m_masterSeed);
}

Bitwarden (C#):

public async Task<User> RegisterUserAsync(User user, string masterPassword)
{
    user.MasterPassword = await _passwordHasher.HashPasswordAsync(masterPassword);
    user.SecurityStamp = CoreHelpers.SecureRandomString(32);
    user.ApiKey = CoreHelpers.SecureRandomString(30);
    return await _userRepository.CreateAsync(user);
}

The code snippets show different approaches to key management and user registration, reflecting the local vs. cloud-based nature of the two password managers.

12,237

Free cross-platform password manager compatible with KeePass

Pros of Keeweb

  • Web-based and cross-platform, accessible from any device with a browser
  • Modern, user-friendly interface with customizable themes
  • Supports cloud storage integration (Dropbox, Google Drive, etc.)

Cons of Keeweb

  • Less mature and potentially less stable than KeePassXC
  • Fewer advanced features and customization options
  • May have security concerns due to being web-based

Code Comparison

KeePassXC (C++):

void Database::setKey(const CompositeKey& key)
{
    m_key = key;
    m_kdf->randomize();
    m_masterSeed = QByteArray(32, '\0');
    Tools::randomize(m_masterSeed);
}

Keeweb (JavaScript):

setPassword: function(password) {
    this.passwordHash = kdbxweb.CryptoEngine.sha256(password);
    this.keyChanged();
    this.setModified();
}

Both projects implement password management functionality, but KeePassXC uses C++ for desktop applications, while Keeweb uses JavaScript for web-based access. KeePassXC's implementation appears more complex, potentially offering more advanced security features.

:key: Cross-Platform Passwords & Secrets Vault

Pros of Buttercup

  • Modern and sleek user interface
  • Cross-platform synchronization with cloud services
  • Built-in password generator with customizable options

Cons of Buttercup

  • Smaller user base and community support
  • Fewer advanced features compared to KeePassXC
  • Less frequent updates and maintenance

Code Comparison

KeePassXC (C++):

void Database::setKey(const CompositeKey& key)
{
    m_key = key;
    m_transformedMasterKey = key.transform(m_transformSeed, m_transformRounds);
}

Buttercup (JavaScript):

setPassword(password) {
    this._password = password;
    this._generateDerivedKey();
}

Both projects implement secure key management, but KeePassXC uses a more complex composite key system, while Buttercup opts for a simpler password-based approach. KeePassXC's implementation allows for more flexibility in key composition, potentially offering stronger security options.

KeePassXC is a mature, feature-rich password manager with a large user base and active development. It offers advanced features like hardware key support and extensive customization options. Buttercup, on the other hand, provides a more modern and user-friendly interface with seamless cloud synchronization, making it appealing for users who prioritize ease of use and cross-platform accessibility.

2,657

A modern, open source password manager for individuals and teams.

Pros of Padloc

  • Modern, web-based interface with cross-platform support
  • Built-in secure sharing and collaboration features
  • Supports custom fields and attachments

Cons of Padloc

  • Less mature and battle-tested compared to KeePassXC
  • Smaller community and fewer third-party integrations
  • Requires a server component for full functionality

Code Comparison

KeePassXC (C++):

void Database::setKey(const CompositeKey& key)
{
    m_key = key;
    m_kdf->randomize();
    m_masterSeed = randomGen()->randomArray(32);
}

Padloc (TypeScript):

async setPassword(password: string) {
    const key = await this.deriveKey(password);
    await this.setEncryptionKey(key);
    await this.save();
}

Both projects implement secure key management, but KeePassXC uses C++ for native performance, while Padloc leverages TypeScript for web compatibility. KeePassXC's approach is more low-level, directly handling cryptographic operations, whereas Padloc abstracts these details behind higher-level functions.

KeePassXC offers a robust, offline-first solution with a focus on security and privacy. Padloc provides a more modern, collaborative approach with web-based features, but may have a steeper learning curve for traditional password manager users.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

KeePassXC

OpenSSF Best Practices TeamCity Build Status codecov GitHub release

Matrix community channel Matrix development channel

KeePassXC is a modern, secure, and open-source password manager that stores and manages your most sensitive information. You can run KeePassXC on Windows, macOS, and Linux systems. KeePassXC is for people with extremely high demands of secure personal data management. It saves many different types of information, such as usernames, passwords, URLs, attachments, and notes in an offline, encrypted file that can be stored in any location, including private and public cloud solutions. For easy identification and management, user-defined titles and icons can be specified for entries. In addition, entries are sorted into customizable groups. An integrated search function allows you to use advanced patterns to easily find any entry in your database. A customizable, fast, and easy-to-use password generator utility allows you to create passwords with any combination of characters or easy to remember passphrases.

Quick Start

The QuickStart Guide gets you started using KeePassXC on your Windows, macOS, or Linux computer using pre-compiled binaries from the downloads page. Additionally, individual Linux distributions may ship their own versions, so please check your distribution's package list to see if KeePassXC is available. Detailed documentation is available in the User Guide.

Features List

KeePassXC has numerous features for novice and power users alike. Our goal is to create an application that can be used by anyone while still offering advanced features to those that need them.

Basic

  • Create, open, and save databases in the KDBX format (KeePass-compatible with KDBX4 and KDBX3)
  • Store sensitive information in entries that are organized by groups
  • Search for entries
  • Password generator
  • Auto-Type passwords into applications
  • Browser integration with Google Chrome, Mozilla Firefox, Microsoft Edge, Chromium, Vivaldi, Brave, and Tor-Browser
  • Entry icon download
  • Import databases from CSV, 1Password, and KeePass1 formats

Advanced

  • Database reports (password health, HIBP, and statistics)
  • Database export to CSV and HTML formats
  • TOTP storage and generation
  • Field references between entries
  • File attachments and custom attributes
  • Entry history and data restoration
  • YubiKey/OnlyKey challenge-response support
  • Command line interface (keepassxc-cli)
  • Auto-Open databases
  • KeeShare shared databases (import, export, and synchronize)
  • SSH Agent integration
  • FreeDesktop.org Secret Service (replace Gnome keyring, etc.)
  • Additional encryption choices: Twofish and ChaCha20

For a full list of changes, read the CHANGELOG document.
For a full list of keyboard shortcuts, see KeyboardShortcuts.adoc

Building KeePassXC

Detailed instructions are available in the Build and Install page and in the Wiki.

Contributing

We are always looking for suggestions on how to improve KeePassXC. If you find any bugs or have an idea for a new feature, please let us know by opening a report in the issue tracker on GitHub, or join us on Matrix community channel or Matrix development channel, or on IRC in Libera.Chat channels #keepassxc and #keepassxc-dev.

You may directly contribute your own code by submitting a pull request. Please read the CONTRIBUTING document for further information.

Contributors are required to adhere to the project's Code of Conduct.

License

KeePassXC code is licensed under GPL-2 or GPL-3. Additional licensing for third-party files is detailed in COPYING.