Coder Social home page Coder Social logo

enigma's Introduction

README

E N I G M A

Contributors Forks Stargazers Issues

Enigma Welcome Screen

Table of Contents


Overview

Enigma is a 4 day, single person project during Mod 1 of 4, for Turing School's Back End Engineering Program.

The challenge was to build an Enigma machine similar to the one developed by Alan Turing and his team in WW2. Each individual letter in the message is shifted four times, and only those who can know the key can reverse the process and reveal the original message.

Learning goals and areas of focus consisted of:

  • Program structural architecture
  • Break a program into logical components with proper encapsulation
  • Data manipulation
  • Outside file integration
  • File IO
  • Apply Enumerable techniques in a real context
  • Technical Requirements

Getting Started

  1. Fork MY repository

  2. Copy the fork's URL

  3. Clone your forked repository: Run git clone with the copied URL.

  • The best way to get started is to navigate into the enigma directory, open the message.txt file, and type out a message that you want encrypted. Save the file.

  • Next, still in your enigma directory within terminal, run the following command to encrypt a message: ruby ./lib/encrypt.rb message.txt encrypted.txt. This generates an encrypted message along with a random key to access it, along with today's date.

  • You may specify a pre-determined key and date value if you wish, with the Key being a 5 digit number and the Date in DDMMYY format.

  • The command would be ruby ./lib/encrypt.rb message.txt encrypted.txt 55555 290492 with 55555 being the key and 290492 representing the date (April 29, 1992).

  • The encrypted message will now live in the encrypted.txt file.

  • To unencrypt, you must provide the key. If the date value is not today, you will need to pass the date as well. The format is as follows:

  • ruby ./lib/decrypt.rb encrypted.txt decrypted.txt 55555 290492 If the date (290492) were not passed, the default would be today.

  • Both the key and the date MUST be correct to return the decrypted message.

Tools Used

  • Ruby 2.7.2
  • RSpec
  • Pry
  • Atom
  • GitHub
  • SimpleCov

Self Evaluation

Students were asked to judge themselves according to this rubric self_eval

Contributors

๐Ÿ‘ค Brian Fletcher

enigma's People

Contributors

bfl3tch avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.