radixword
Encode Bitcoin addresses, DHT hashes and base64 data in a human-friendly format. Try it out!
Warning
This is merely an encoding method -- not encryption, not steganography.
A secret dictionary would still be vulnerable to a statistical attack.
Examples
Bitcoin address. 30 seconds to read out unencoded vs 13 seconds encoded. Both take approx 1:20 to type on Swiftkey.
- 1Hhb9W6MZBkUmZijENZX3LYeKxJJ62WuXP
- ere yoke abet dark box epic pelt lath cash lewd camp kiwi slate much hoist fixed dish
Magnet URL (sans the "magnet:?xt=urn:" prefix). 25 secs to read unencoded vs 15 seconds encoded. 2:30 to type unencoded on Swiftkey vs 1:25 encoded.
- 18b9bd1f0ed88885605520a82a9d860c679d6755
- milky mayan gawk teak spud exude chump bulky sioux spate saute riser felt seer salvo pied blimp seer blimp spate
Install
npm install radixword
Usage
Data must be in base64-compatible format before encoding.
var radixword = ; radixword; //=> "abut morn petal"radixword; //=> "base64"
Dictionary
dictionaryLength = keyspaceLength ^ charsPerWord
dictionary.json:
// How many chars to encode per word "charsPerWord": 2 // Encoding chars, plus a padding char ("#") "keyspace": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=#" // Delimiter for encoded data "delimiter": " " // Word list "words": "the" "and" "you" ...