Welcome to /r/DailyProgrammer challenge submissions! The focus of r/DailyProgrammer is to provide daily/weekly challenges to keep your mind and fingers busy between projects. This subreddit (r/DailyProgrammer_Ideas) is a challenge submission system, where you can submit any ideas, which may be accepted and posted to the official subreddit! We normally post Easy challenges on Mondays, Intermediate on Wednesdays, and Hard on Fridays. Once your submission is peer reviewed and accepted, we will put it into the challenge rota and post it shortly.

Submission Procedure

There are minimum criteria you must meet for submitting a good challenge:

Your post title must start with [Easy|Intermediate|Hard] and the title, and be written in a clear format with at least good English skills.

Challenges should be described in a fun and lighthearted manner, even if the challenge itself is conceptually difficult.

A good format for the description would be two to three short paragraphs: a general background, a detailed explanation of the task, and a final example walk-through.

Challenges should ideally be easy to describe and without the need of specialized knowledge outside of programming. If a developer cannot research and understand any knowledge-dependencies (outside of general programming) in a few minutes, then your challenge might be too specialized of a topic.

Make the title interesting; it does not have to explicitly say what you are doing in the challenge.

Set the difficulty to an appropriate level. Easy challenges have trivial brute-force solutions or require no complex logic. Intermediate challenges may have some sorting and searching involved, and though can be solved through brute-force, are too complex to solve without algorithms and some clever thinking. Hard challenges require knowledge and control over a programming language, good logic skills and creativity.

What you must fill out in your post is the following:

Difficulty and Title

Challenge Description

Input Description

Output Description

Sample Input data

Sample Output data

Extension challenges (optional)

Notes and Further Reading (optional)

This is the kind of format you want to mimic. Of course, if your challenge can't be easily formatted like the above, feel free to use your own formatting. Challenges which deviate too far from these rules might not be submitted, however.

You are a spy, working deep under enemy lines. With phone lines unsecure, you need to find another way to communicate with HQ. You decide to program an encryption program to send and recieve messages.

Objective:

Implement an RSA encryption/Decryption algorithm. There must be a menu, where the user can decide if he/she wants to encrypt a message or decrypt. Encryption writes the key into a file, decryption reads from a file (who wants to memorize the keys?? Not us lazy programmers thats for sure lol).

You will need a menu with 3 options. The first it to write the Private keys to .txt file. The second is to encrypt a message and write the encrypted message to a .txt file. And the 3rd is to decrypt the message in a.txt file and display the message.