1![Version](https://img.shields.io/badge/Version-0.3.3-green.svg) 2 3No More Secrets 4=============== 5 6This project provides a command line tool called `nms` that recreates the 7famous data decryption effect seen on screen in the 1992 hacker movie Sneakers. 8For reference, you can see this effect at 0:35 in [this movie clip](https://www.youtube.com/watch?v=F5bAa6gFvLs&t=35). 9 10This command works on piped data. Pipe any ASCII or UTF-8 text to `nms`, 11and it will apply the hollywood effect, initially showing encrypted data, 12then starting a decryption sequence to reveal the original plaintext characters. 13 14![Screenshot](http://www.brianbarto.info/extern/images/nms/nms.gif) 15 16Also included in this project is a program called `sneakers` that recreates 17what we see in the above movie clip. Note that this program requires the 18user to select one of the menu options before it terminates. 19 20![Screenshot](http://www.brianbarto.info/extern/images/nms/sneakers.gif) 21 22By default, this project has no dependencies, but it does rely on ANSI/VT100 23terminal escape sequences to recreate the effect. Most modern terminal 24programs support these sequences so this should not be an issue for most 25users. If yours does not, this project also provides a ncurses implementation 26which supports non-ANSI terminals, but at the expense of losing the inline 27functionality (ncurses will always clear the screen prior to displaying output). 28 29Table of Contents 30----------------- 31 321. [Download and Install](#download-and-install) 332. [Usage](#usage) 343. [The NMS Library](#the-nms-library) 354. [License](#license) 365. [Tips](#tips) 37 38Download and Install 39-------------------- 40 41More and more unix/linux platforms are including this project in their 42package manager. You may wish to search your package manager to see if it 43is an installation option. If you install form a package manager, please 44check that you have the latest version (`nms -v`). If not, I suggest 45installing from source by following the instructions below. 46 47To install this project from source, you will need to have the tools `git`, 48`gcc`, and `make` to download and build it. Install them from your package 49manager if they are not already installed. 50 51Once you have the necessary tools installed, follow these instructions: 52 53#### Install: 54``` 55$ git clone https://github.com/bartobri/no-more-secrets.git 56$ cd ./no-more-secrets 57$ make nms 58$ make sneakers ## Optional 59$ sudo make install 60``` 61 62#### Uninstall: 63 64``` 65$ sudo make uninstall 66``` 67 68#### Install with Ncurses Support 69 70If your terminal does not support ANSI/VT100 escape sequences, the effect 71may not render properly. This project provides a ncurses implementation 72for such cases. You will need the ncurses library installed. [Install this 73library from your package manager](NCURSES.md). Next, follow these instructions: 74 75``` 76$ git clone https://github.com/bartobri/no-more-secrets.git 77$ cd ./no-more-secrets 78$ make nms-ncurses 79$ make sneakers-ncurses ## Optional 80$ sudo make install 81``` 82 83Usage 84----- 85 86`nms` works on piped data. Pipe any ASCII or UTF-8 characters to it and 87enjoy the magic. In the below examples, I use a simple directory listing. 88 89``` 90$ ls -l | nms 91$ ls -l | nms -a // Set auto-decrypt flag 92$ ls -l | nms -s // Set flag to mask space characters 93$ ls -l | nms -f green // Set foreground color to green 94$ ls -l | nms -c // Clear screen 95$ nms -v // Display version 96``` 97 98Note that by default, after the initial encrypted characters are displayed, 99`nms` will wait for the user to press a key before initiating the decryption 100sequence. This is how the it is depicted in the movie. 101 102#### Command Line Options 103 104`-a` 105 106Set the auto-decrypt flag. This will automatically start the 107decryption sequence without requiring a key press. 108 109`-s` 110 111Set a flag to mask space characters. This will only mask single blank space 112characters. Other space characters such as tabs and newlines will not be masked. 113 114`-f <color>` 115 116Set the foreground color of the decrypted text to the color 117specified. Valid options are white, yellow, black, magenta, blue, green, 118or red. This is blue by default. 119 120`-c` 121 122Clear the screen prior to printing any output. Specifically, 123it saves the state of the terminal (all current output), and restores it 124once the effect is comlpeted. Note that when using this option, `nms` requires 125the user to press a key before restoring the terminal. 126 127`-v` 128 129Display version info. 130 131The NMS Library 132--------------- 133 134For those who would like to use this effect in their own projects, I have 135created a C library that provides simple interface and can easily be used 136for any program that runs from the command line. 137 138See [LibNMS](https://github.com/bartobri/libnms) for more info. 139 140License 141------- 142 143This program is free software; you can redistribute it and/or modify it 144under the terms of the GNU General Public License. See [LICENSE](LICENSE) for 145more details. 146 147Tips 148---- 149 150[Tips are always appreciated!](https://github.com/bartobri/tips) 151