Vibeleaderboard
Index / tool
Visit github.com
Category
Cybersecurity
Rank
No. 1108Tools index

Previous survey · No. 1113 ·

Pricing
Open Source
Type
TOOL
Latest release
v0.2
Date

About

Split your file into encrypted fragments so you don't need to remember a passcode — distribute the pieces; any threshold reconstructs the original.

What it does

Horcrux is a compact command-line utility for keeping sensitive files recoverable without retaining a password. It creates a fresh encryption key, protects the file as a stream, and uses Shamir secret sharing to divide that key. You choose how many pieces exist and how many must reunite for recovery.

Why it's ranked here

The design is focused, understandable, and practical for unusual long-term custody needs. It uses operating-system randomness, streams large files, and supports flexible recovery thresholds. The verdict is tempered by an explicitly acknowledged data-integrity issue and a cryptographic format that authenticates neither headers nor encrypted content.

What's good

A fresh 32-byte key comes from the system cryptographic random source. Shamir sharing makes the recovery threshold configurable instead of requiring every piece. Processing streams data, so large files need not fit in memory. When every piece is required, encrypted content is divided among them to reduce total storage.

Tradeoffs

Encrypted content lacks an authentication check, so corruption or modification may not be detected before producing damaged output. The stream mode uses a fixed zero initialization value, although each split receives a new random key. When the threshold is below the total, every piece carries a full encrypted payload, multiplying storage use. Output pieces use ordinary file permissions.

How to use it well

Use it for personal archives or transfers where pieces can live on separate USB devices or independent online channels. Pick a threshold that tolerates realistic loss, test recovery, then track every storage location yourself. It does not provide location management, authenticated integrity, access auditing, or a general backup system.

Technical notes+

main.go implements the two-command CLI with the standard flag package. pkg/commands/split.go generates a 32-byte key, serializes JSON metadata into each fragment, and either replicates ciphertext or stripes it across outputs. pkg/commands/utils.go uses AES-OFB with an all-zero IV and provides no MAC or authenticated-encryption tag. pkg/shamir/shamir.go and pkg/shamir/tables.go contain an adapted HashiCorp Vault Shamir implementation and identify that adapted code as MPL-2. pkg/multiplexing/multiplexing.go stripes data in 100-byte quotas when threshold equals total. pkg/commands/bind.go validates filename, timestamp, and threshold metadata before reconstruction, but does not verify content integrity. go.mod declares Go 1.14 and no external modules.

Observed

Primary language
Go
Repository license
MIT; adapted Shamir source files identify their inherited implementation as MPL-2
Interface
Command-line utility with split and bind commands
Install surface
Homebrew tap, Scoop extras bucket, and downloadable binary releases
Release platforms
FreeBSD, Windows, macOS, and Linux
Release architectures
amd64, ARM, ARM64, and 386
Dependencies
The Go module declares no external module requirements; source imports use the standard library and internal packages

Read from README.md, go.mod, main.go, pkg/commands/bind.go, pkg/shamir/shamir.go, pkg/shamir/tables.go, pkg/commands/split.go, pkg/commands/utils.go, pkg/commands/horcrux.go, pkg/multiplexing/multiplexing.go, LICENSE, .goreleaser.yml, example/diary.txt, .github/FUNDING.yml.

What it can do

  • Split file into encrypted fragments

    FileMultiple encrypted fragments

  • Set reconstruction threshold for fragments

    Number of required fragmentsConfigured threshold setting

  • Reconstruct original file from fragments

    Threshold number of encrypted fragmentsOriginal file

  • Encrypt file fragments

    File fragmentsEncrypted file fragments

  • Distribute fragments across multiple locations

    Encrypted fragmentsFragments stored in separate locations

Tags

encryptionsecret-sharingsecurityclibackup

Tech Stack

Go

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.