Have ideas to improve npm?Join in the discussion! »

    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", ...]
     
    }
     

    Keywords

    Install

    npm i radixword

    DownloadsWeekly Downloads

    1

    Version

    0.1.0

    License

    MIT

    Last publish

    Collaborators

    • avatar