Simple Free Encryption Tool

Simple Free Encryption Tool (sfet) uses RSA and AES versions that are strong and allow encryption between client-side Javascript, Node.js and C#.

Open and free for all to see, can be run stand-alone for extra security,
see https://github.com/therightstuff/simple-free-encryption-tool

If you've found this tool useful, please consider making a donation!

Encryption 101:
RSA encryption operates on a very limited string length, it is generally used to asymmetrically encrypt a shared secret that in turn is used for symmetric encryption. The standard use-case is to generate a random shared secret and transmit it encrypted with the destination's public RSA key. Once the destination has decrypted the shared secret with its private RSA key both sides will be able to use that secret to encrypt and decrypt communication with AES.

Signing a message to prove authorship (and that it hasn't been tampered with) is performed on the plaintext message, and the resulting signature can only be verified with the public key matching the private key it was signed with. The padding for signing and verifying signatures is not the same as for encrypting and decrypting messages.

Important Quirks:
The AES secret must be a 32 character string. In order to ensure a valid string, the secret is hashed using the MD5 algorithm to produce a string of the correct length.

The IV, or Initialization Vector, is a 16 character hexadecimal string that's required by the AES algorithm (read this for a detailed explanation). It's not really necessary when encryption secrets aren't being reused, but as it's enforced by the underlying crypto package it's recommended to include it. If you do choose to leave it out, a default IV of '0000000000000000' will be used.

Signing messages and verifying signatures with simple-free-encryption-tool are performed using the SHA-256 hashing algorithm.

File Encryption:
If your browser supports it, you will be able to encrypt and decrypt files from this interface. The file metadata (eg. MIME type) will not be encrypted, only the file contents.

MD5

Initial text MD5 Hash

SHA-256

Initial text SHA-256 Hash

RSA

RSA Keys generated with PKCS1 padding, OPENSSH PEM format is compatible with C#.
-bit
Public Key Private Key
Unencrypted text Encrypted text
Signature Verified

AES

AES-256 CBC mode is compatible with C#.
Key:
IV:
Source File:
Result File: Download Result
Unencrypted text Encrypted text