Пример #1
0
        /// <summary>
        /// Task 2. RSA Encryption and decryption
        /// </summary>
        /// <param name="keys">keys</param>
        /// <param name="fileName"></param>
        /// <param name="keyLength">Key length</param>
        private static void RsaCrypt(KeysHolder keys, string fileName, int keyLength)
        {
            var plainText     = FileWorker.GetBinaryFile(fileName);
            var encodedText   = new List <short>();
            var decryptedText = new List <short>();
            var rsaEncoder    = new RsaEncoder();

            // encrypting
            encodedText = Encode(keys.publicKey, keys.cypherModule, plainText, rsaEncoder, keyLength / 4, keyLength, false);
            // saving encrypted message
            FileWorker.CreateTextFileForBinaryNumber(encodedText, "crypted.txt");
            Console.WriteLine(String.Format("Encryption has finished. Check crypted.txt"));

            // decrypting
            decryptedText = Encode(keys.privateKey, keys.cypherModule, encodedText, rsaEncoder, keyLength, keyLength / 4, true);
            // saving decrypted message
            FileWorker.GetNEWFile(decryptedText, "decrypted_" + fileName);
            Console.WriteLine(String.Format("DEcryption has finished. Check decrypted{0}", fileName));
            Console.WriteLine("-------------------------------------------------------------");
        }