Password Keyboard
July 12, 2026 · View on GitHub
Password Keyboard is a native Flipper Zero Bluetooth application that generates, stores, and types passwords as a BLE HID keyboard.
What it does
- Starts in a Bluetooth connection screen and advertises as a keyboard.
- Creates 4–64 character passwords from configurable lowercase, uppercase, number, and special-character sets.
- Prompts for a custom name before generating each password.
- Supports normal passwords (type or reveal) and hidden passwords (type only).
- Gives each hidden password its own configurable daily allowance (1–9, default 3).
- Counts only successful confirmed typing attempts. The allowance resets on the next calendar date according to the Flipper RTC.
- Entries made while creating and testing a password do not consume its daily allowance; counting begins after the password is saved.
- Lets a newly generated password be typed once, optionally typed again, followed by Tab or Enter, then saved without revealing a hidden password.
- Supports manually entered passwords using the selected normal or hidden type.
- Opens Rename and Delete actions when a saved password is selected by holding OK; deletion requires confirmation.
- Includes a Settings screen for the persisted default password name.
- Stores all password payloads in a device-bound authenticated scrambled form.
- Imports regular passwords from a simple file on the Flipper filesystem.
Build
Install uFBT, select the official release SDK, and build:
ufbt update --channel=release
ufbt
The .fap is produced under dist/. To build and launch on an attached
Flipper:
ufbt launch
Run the host-side cryptography tests with:
sh tests/run.sh
The SDK API must be no newer than the API on the Flipper. Firmware 1.4.3 uses
API 87.1; the matching uFBT release SDK builds a compatible app. The manifest
links the official ble_profile library, following the firmware's own
Bluetooth HID application.
Bluetooth pairing
- Open Password Keyboard on the Flipper.
- Open Bluetooth settings on the target computer or phone.
- Pair with the advertised
PassKeykeyboard. - Once connected, the Flipper moves to the password list.
Pairing keys are isolated in the app data directory. The normal Flipper Bluetooth profile is restored when the app exits.
Filesystem import
Create this file on the SD card app-data area:
/ext/apps_data/password_keyboard/import.txt
Each non-comment line is name|password:
# Password Keyboard import v1
Work email|correct horse battery staple
Router|p@ssw0rd-example
Imported entries are regular passwords. After a successful import, the plaintext import file is removed. The vault remains at:
/ext/apps_data/password_keyboard/vault.bin
The Flipper application sandbox exposes that same location internally as
/data/vault.bin.
Security model
The vault never stores plaintext passwords. It derives a key from the Flipper's hardware UID, uses random per-record nonces, encrypts the bytes with a keyed BLAKE2s stream, and authenticates each ciphertext before decrypting it. Plaintext buffers are wiped after typing or leaving the reveal screen.
This is strong practical concealment against casual SD-card inspection, not a hardware-backed secret boundary. A person who controls the Flipper and can run modified firmware can recover any password that the device itself can type. Hidden mode prevents accidental viewing and enforces each password's configured daily limit in the normal app; it cannot cryptographically defend that limit against the device owner.
The HID character map assumes a US keyboard layout. Special characters may be different when the target computer uses another keyboard layout.
Idea by: Evgeniy Raev.