Project

Enigma

Hard
135 completions
~ 10 hours
4.4

Get familiar with Bash commands. Use variables, functions, and loops. Learn how to convert chars, encrypt and decrypt files.

Provided by

JetBrains Academy JetBrains Academy

About

Humanity has explored ways to keep secrets since the early days — non-standard hieroglyphs were found in a tomb from the Old Kingdom of Egypt around 1900 BC. Julius Caesar invented a substitution cipher in 60 BC. The Enigma machine was designed in 1918 to protect communications in the banking industry. In the early 1970s, IBM founded the "crypto group," which developed a block cipher to protect its customers' data. In 1973, the US adopted it as a national standard; it took 25 years for hackers to crack it.

This project allows you to write a program for encrypting messages and files. But first, you need some basic knowledge about ciphers. You will start with the validation of user input. Then you need to convert chars to ASCII values. In the end, you will build a simple cipher that creates a file and encrypts it with a Linux utility.

Graduate project icon

Graduate project

This project covers the core topics of the Introduction to Command Line and Unix Shell course, making it sufficiently challenging to be a proud addition to your portfolio.

At least one graduate project is required to complete the course.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
Convert the chars to ASCII values and extract chars from ASCII values.
Build an algorithm to encrypt/decrypt messages with the Caesar cipher.
Create a text file with the content.
Encrypt and decrypt files with the Caesar Cipher.
Encrypt and decrypt files with a Linux utility.

Reviews

User 283408519 avatar
User 283408519
1 week ago
fun project. learned so much about bash scripting. I feel stupid not having done much in the past, but this was fun to do!
Vaibhav
2 months ago
this was the good i have learned a lot about encryption decryption and string file operations.
Mauro Gonçalves avatar
Mauro Gonçalves
6 months ago
I improved my bash scripting skills by:Creating interactive menu systemsImplementing proper input validation using regex patternsHandling file operations securelyProcessing command exit codes to determine success/failure

4.4

Learners who completed this project within the Introduction to Command Line and Unix Shell course rated it as follows:
Usefulness
4.6
Fun
4.4
Clarity
4.3