There are many great sites for developers that provide hashing, encryption, and string manipulation functions. Unfortunately most of them don't do the work in the browser with javascript, don't offer a live preview, have each function on a different page, and don't give a choice of output formats for byte array output.
The aim of this site is to provide all those options in one place. You'll be able to build up a pipeline of transformation steps that take your input and then process it any way you want to give the desired output. Want an encrypted value represented as a URL-safe base 64 string with line separators every 80 characters? No problem. Want your hex string in upper case with commas between each pair? Easy.
This site is easy to run locally for developers who want to test encryption and hashing without entering passwords and secret keys on a website. As there are no server round trips and no analytics or other libraries included from other sites, this site should be safe for use with sensitive data.
This project started in March 2018 and has reached MVP, with a relatively small set of transformation steps included and more to follow.
The After MVP project lists planned future features. If you have a feature request that isn't listed, please open an issue or a pull request!
This project is bootstrapped with create-react-app so all you need to run it is Node >= 8. Earlier versions may also work but haven't been tested.
Clone the project and run npm install
then npm start
to start developing locally. SCSS files are watched and
compiled as you work, and new styles loaded by the browser without refreshing the page.
Please refer to the documentation for create-react-app
for more details.
Run in development mode with live reload:
npm start
Run tests:
npm test
Run SASS-lint:
npm run lint-css
Run webpack bundle analyzer:
npm run analyze
Run a production build including all tests:
npm run build
To test the site with production nginx configuration and ensure that minification does not break anything, use Docker to wrap the production build. The following steps will compile the app, then build and launch an nginx Docker container that serves it with all the security and caching headers required. Self-signed certificates for localhost are provided.
npm run build
docker build --tag string-o-matic .
docker run --name string-o-matic --rm -p 8000:80 -p 8443:443 string-o-matic
Now browse to https://localhost:8443/ and click through the security warning. If necessary, change the port mappings to avoid conflicts with other services you have running.
You can also test the production build with serve -s build
but this will not include all the security and caching
headers sent by nginx.
MIT
Copyright (c) 2018 David Morrissey