Book Image

The Modern C# Challenge

By : Rod Stephens
Book Image

The Modern C# Challenge

By: Rod Stephens

Overview of this book

C# is a multi-paradigm programming language. The Modern C# Challenge covers with aspects of the .NET Framework such as the Task Parallel Library (TPL) and CryptoAPI. It also encourages you to explore important programming trade-offs such as time versus space or simplicity. There may be many ways to solve a problem and there is often no single right way, but some solutions are definitely better than others. This book has combined these solutions to help you solve real-world problems with C#. In addition to describing programming trade-offs, The Modern C# Challenge will help you build a useful toolkit of techniques such as value caching, statistical analysis, and geometric algorithms. By the end of this book, you will have walked through challenges in C# and explored the .NET Framework in order to develop program logic for real-world applications.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Packt Upsell
Free Chapter
Dates and Times
Files and Directories
Advanced C# and .NET Features


Use the following problems to test your skills at building cryptographic programs. Give each problem a try before you turn to the example solutions for help.

91. Caesar cipher

In a Caesar cipher, also called a Caesar shift, Caesar substitution cipher, or shift cipher, you shift the values of the letters in the message by some fixed amount. In the original Caesar cipher, Julius Caesar reportedly used a shift of three to send secret messages to his commanders, so each letter was replaced by the letter that comes three positions later in the alphabet. The letter A was encrypted as D, B was encrypted as E, and so forth. Letters at the end of the alphabet wrap around to the beginning so, for example, X becomes A, Y becomes B, and Z becomes C. In this example, the shift value, 3, was the cipher's key.

Write a program that uses a Caesar cipher to encrypt and decrypt messages. Let the user enter some text and a shift and then click a button to encrypt the message. Let the user then enter a...