0.0
No commit activity in last 3 years
No release in over 3 years
use both key and date
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
>= 0
~> 10.0
~> 3.0
 Project Readme

Build Status

Sofien-Enigma

Sofien-Enigma is an encryption engine built (as a gem) with ruby programming language. It follows the principles of Enigma Encryption Machine to encrypt and decrypt files. The gem also offers the feature of cracking a file.

Installation

To install as a gem and run as a terminal/command line program, run the following command in you terminal(command prompt for Windows)

$ gem install sofien-enigma

To use the gem in your project, add it to your gem file

gem 'sofien-enigma'

And then execute:

$ bundle

Usage

This gem provides you with three command line actions, encrypt, decrypt, and crack. When you have installed the gem, you can encrypt a file by changing to the directory that contains the file, and run any of the following commands

Encryption

$ encrypt <plain filename> <encrypted filename>

Decryption

$ decrypt <encrypted-filename> [<plain-filename>] <key> <date>

Cracking

$ crack <encrypted-filename> [<plain-filename>] <date>

##Example Usage

$ encrypt message.txt encrypted.txt

=>#Created encrypted.txt with the key 51569 and date 030316

To decrypt a file named file named encrypted.txt

$ decrypt encrypted.txt decrypted.txt 51569 030316

=>#Created decrypted.txt with key 51569 and date 030316

To crack a file named encrypted.txt

$ crack encrypted.txt crack.txt 030316

=>#Created cracked.txt with key 51569 and date 030316

Limitations

  • The character set of this gem is limited; lower case alphabets, numbers, space, comma and period characters.
  • The gem generates the the key for the encryption, and does not allow user to choose their prefered digit combinations.
  • The gem does not have a keys manager to help users save their keys

Improvement

  • The character set supported by the gem will be increased
  • The application should able to allow users choose their encryption key upon encrypting a file.
  • The gem should be able to offer users the option of creating a text file, when they enter an invalid file name.
  • The error handling will be increased to show proper error message for any error that can occur.
  • Provide a key management system to store keys for easy reference.