INFRA Signal 419 2 feeds carried it
TurboCrypt switches from Base91 to Base84 for cross-platform file name encoding
Illustration only Photo by Declan Sun on Unsplash
A file encryption tool adopts Base84 to encode encrypted filenames safely across Unix, macOS, and Windows systems
Engineers handling encrypted file storage or cross-platform tools must account for filesystem restrictions. Base84 provides a consistent encoding scheme that avoids forbidden characters while maximizing bit density. This change simplifies interoperability without sacrificing efficiency
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
Base84 uses 84 ASCII characters safe for filenames on Linux, macOS, and Windows
Five-character encoding groups handle 32 bits 95% of the time with 25.2% expansion on average
The scheme inherently avoids Windows reserved device names without special handling
THE READ
What the cluster adds up to.
TurboCrypt originally used Base91 to encode encrypted filenames for Unix and macOS systems. Base91 provided a compact representation but included characters incompatible with Windows filesystems. The shift to Base84 addresses this limitation by excluding nine forbidden characters and the trailing dot, leaving 84 valid ASCII characters for filenames. This change enables consistent behavior across all major operating systems without requiring platform-specific adjustments.
Base84 encodes data in five-character groups, each representing up to 32 bits of input. The scheme achieves 6.39 bits per character on average, resulting in 25.2% expansion for random input. This outperforms Base64's 33.3% expansion while maintaining compatibility with filesystem constraints. The worst-case expansion of 29% occurs when input forces 31-bit groups, but this remains more efficient than Base64. The five-character grouping also aligns perfectly with the 255-byte filename limit, avoiding partial groups.
The Base84 alphabet avoids all Windows reserved device names by design. Three-character outputs always end with A-J, blocking CON, PRN, AUX, and NUL. Four-character outputs cannot end with digits, preventing COM1-9 and LPT1-9. The absence of dots further prevents reserved names with extensions. This eliminates the need for padding or special handling, simplifying implementation. For Unix-only use cases, a Base91 variant with an apostrophe instead of a slash remains available, offering slightly better bit density.
Adopting Base84 requires updating existing tools and libraries to use the new alphabet and encoding logic. The change affects only filename encoding, not the underlying encryption. Engineers must ensure backward compatibility when migrating existing encrypted files, as filenames encoded with Base91 will not decode correctly with Base84. The transition may also require updates to documentation and user interfaces to reflect the new filename format.
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER