radixword

0.1.0 • Public • Published

radixword Build Status

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 = require("radixword");
 
radixword.encode("base64"); //=> "abut morn petal"
radixword.decode("abut morn petal"); //=> "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", ...]
 
}
 

Readme

Keywords

Package Sidebar

Install

npm i radixword

Weekly Downloads

5

Version

0.1.0

License

MIT

Last publish

Collaborators

  • neftaly