Skip to content
Dynamic & lightweight C++ encryption algorithm using a password or not, changing the encrypted string each time it is submitted even if the original string hasn't changed.
C++ Makefile Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
php_extension
tests
LICENSE
Makefile
README.md
flbw.cpp
flbw.h
main.cpp

README.md

What is FLBW ?

FLBW is a dynamic and lightweight C++ encryption algorithm allowing you to encrypt a string with or without a password.

This algorithm generates a different string each time the same plain string is submitted, even with the same password.
It also provides a customisable difficulty bruteforce protection.

Actual version : (cpp) 0.7.1

Installation

Classic install for permanent usage :

sudo make install
flbw # ... (see usage below)

ℹ️ You can uninstall with sudo make uninstall.

Classic install for temporary usage :

make
./flbw # ... (see usage below)

Usage

You have two ways of using the FLBW algorithm :

  • Encrypt or decrypt a string.
  • Encrypt or decrypt a file.
> For encryption :
flbw enc[bp 250000] password string # Add "bp" if you want to enable "bruteforce protection".
flbw encf[bp 250000] password file.txt [encrypted_destination.txt] # Last parameter is optional, the result will be printed if not specified.
flbw encbyf[bp 250000] passwordfile.txt file.txt [encrypted_destination.txt] # Last parameter is optional, the result will be printed if not specified.

> For decryption :
flbw dec[bp 250000] password encryptedstring
flbw decf[bp 250000] password encryptedfile.txt [decrypted_destination.txt] # Last parameter is optional, the result will be printed if not specified.
flbw decbyf[bp 250000] passwordfile.txt encryptedfile.txt [decrypted_destination.txt] # Last parameter is optional, the result will be printed if not specified.

The [bp 250000] sequence is optional. It is used to enable bruteforce protection to a difficulty of 250000.
You can modify it at your will, 250000 is just a reference.

Bruteforce protection

⚠️ Enabling bruteforce protection greatly increases the security of your encryption but also greatly increases the encryption/decryption time.

⚠️ The version 0.6 of FLBW introduces the possibility to encrypt with bruteforce protection for decryption. While it's working, it's not a long-term solution. It will be reviewed in the next releases.

Tests

Instructions for tests are in the tests directory.

Encryption mechanism

See the following schematics to understand how FLBW roughly work.

You can’t perform that action at this time.