Let's implement a really simple device that encrypts or decrypts the data that is streamed through it using a very simple algorithm—the Caesar cipher. When encrypting, it shifts each character in the plaintext by a number of characters defined by the key. It does the reverse when decrypting. Thus, if the key is 2 and the plaintext character is a, the ciphertext becomes c. Decrypting z with the key 4 will yield the value v.
First, create a new empty project by selecting the Empty qmake Project template from the Other Project category. Next, add a main.cpp file and a new CaesarCipherDevice class derived from QIODevice. The basic interface of the class will accept an integer key and set ...