Skip to content

dailykey

Generate deterministic passwords that stay in sync across machines — even offline ones — without ever exchanging them.

dailykey derives a key from a shared seed and the current date. Two machines initialised with the same passphrase will always produce the same key on the same day, without needing any network connection between them.

Why

Sometimes you need a shared password between machines that can't (or shouldn't) talk to each other. For example:

  • An APFS encrypted disk that you plug into different machines — you want the password to be something strong and unpredictable, but you don't want to store it anywhere or type in the same static password forever.
  • An air-gapped machine that needs to agree on a daily credential with an online machine, with no way to exchange it at runtime.
  • Any situation where two machines need a shared secret that looks random from the outside, changes regularly, and requires zero coordination.

As long as both machines were initialised with the same passphrase, they will independently produce the same key each day.

Features

  • Deterministic — same seed + date always produces the same key, on any machine, with no network required
  • Daily rotation — a new key every day, automatically
  • Named keys — pass a name to get a different key per use case, all from the same seed
  • Passphrase-derived seed — the seed is derived from a passphrase using 5 million rounds of SHA-512, so you just need to remember the passphrase

Installation

pip install dailykey

Quick Start

Initialise with a passphrase (one-time setup, on each machine):

dailykey --init

Then generate today's key:

dailykey

Or a named key for a specific purpose:

dailykey backupdisk

About

dailykey is developed by WaterJuice and released into the public domain under the Unlicense.