KDBX file format
The KDBX format can be conceptually divided into two layers: the outer database with its header, and the compressed and encrypted HMAC block stream containing the inner database with its header.
Encoding
- All numbers are stored in little-endian format, so the 32-bit hex number
0x01234567will be stored as the byte sequence67 45 23 01 - All boolean values are stored as a single byte, with
0x00representingfalseand0x01representingtrue. - All UUIDs are stored as 16 bytes in big-endian format, so the UUID
123e4567-e89b-12d3-a456-426614174000will be stored as the byte sequence12 3E 45 67 E8 9B 12 D3 A4 56 42 66 14 17 40 00. - All strings are UTF-8 encoded, so the string
Hello 😃will be stored as the byte sequence48 65 6C 6C 6F 20 F0 9F 98 83.