Home Other Apps Contact Developer

streamdice web

MIT License - Copyright (c) 2022 Andrew Garcia, PhD

Disclaimer: Use At Your Own Risk
This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the MIT LICENSE, as published by Andrew Garcia. See LICENSE for more details. Read the white paper.

The Method

Streamdice makes a collection of keyboards with permuted buttons, where each unique keyboard set is generated from a "hash" random seed, all of which are produced by the provided encryption keys. The keyboard below [it may look crowded if seen from a phone or small tablet] demonstrates how we can create a unique shuffled keyboard from a specific hash:

Keyboard Hash: #
Text Out:
caps lock

The shuffled keyboards are periodically repeated per each character type. Streamdice is is therefore a stream cipher 😯. The number of unique shuffled keyboards is equal to the number of digits used for key # 2, while key # 1 nests each of the digits from key # 2 to create the hashes. In simple words, each hash is a function of both keys. The white paper explains this process in more depth

This site uses streamdiceJS, the JavaScript implementation of the streamdice algorithm. If a stand-alone program is desired for additional security reasons, the C++ version of streamdice may be used. Streamdice available for download on Github (see right / bottom panel).

Pseudo-Random Number Generators (PRNGs):
streamdiceJS uses the Mulberry32 PRNG, while the standalone C++ streamdice program uses the std::mt19937 Mersenne Twister engine . Therefore, these different implementations will generate different ciphertext.

Thanks! 🙌

Top Supporters


Sponsor tiers

$10 a month

  • Your name will be added to the "Supporter" section of this page AND to that of the thanks page.

$30 a month

  • Your name will be added to the "Top Supporter" section of this page AND to that of the thanks page.
  • Logo or name goes in the README of any one of this Github project

Sponsor with BTC

Bitcoin (BTC) is a secure and anonymous digital currency. If you'd like to support me, my independent software, or any of my open-source projects at Github You can send BTC to the following address:

If you'd like to make your contribution public, send me the amount and date you made your contribution to my Twitter or LinkedIn and I'll add you to the sponsor list according to the described sponsor tiers above.

Download streamdice on Github


streamdice is a stream cipher developed by Andrew Garcia based on the catalogued random shuffling of keyboard hashmaps.