1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Maksim231197 [3]
3 years ago
12

In this assignment you'll write a program that encrypts the alphabetic letters in a file using the Vigenère cipher. Your program

will take two command line parameters containing the names of the file storing the encryption key and the file to be encrypted. The program must generate output to the console (terminal) screen as specified below. Command Line Parameters 1. Your program must compile and run from the command line. 2. Input the required file names as command line parameters. Your program may NOT prompt the user to enter the file names. The first parameter must be the name of the encryption key file, as described below. The second parameter must be the name of the file to be encrypted, as also described below. The sample run command near the end of this document contains an example of how the parameters will be entered. 3. Your program should open the two files, echo the processed input to the screen, make the necessary calculations, and then output the ciphertext to the console (terminal) screen in the format described below. Note: If the plaintext file to be encrypted doesn't have the proper number (512) of alphabetic characters, pad the last block as necessary with the letter 'X'. Make sure
Computers and Technology
2 answers:
skad [1K]3 years ago
5 0

Answer:

code is written in c++ below

Explanation:

// C++ code to implement Vigenere Cipher

#include<bits/stdc++.h>

using namespace std;

// This function generates the key in

// a cyclic manner until it's length isi'nt

// equal to the length of original text

string generateKey(string str, string key)

{

int x = str.size();

for (int i = 0; ; i++)

{

if (x == i)

i = 0;

if (key.size() == str.size())

break;

key.push_back(key[i]);

}

return key;

}

// This function returns the encrypted text

// generated with the help of the key

string cipherText(string str, string key)

{

string cipher_text;

for (int i = 0; i < str.size(); i++)

{

// converting in range 0-25

int x = (str[i] + key[i]) %26;

// convert into alphabets(ASCII)

x += 'A';

cipher_text.push_back(x);

}

return cipher_text;

}

// This function decrypts the encrypted text

// and returns the original text

string originalText(string cipher_text, string key)

{

string orig_text;

for (int i = 0 ; i < cipher_text.size(); i++)

{

// converting in range 0-25

int x = (cipher_text[i] - key[i] + 26) %26;

// convert into alphabets(ASCII)

x += 'A';

orig_text.push_back(x);

}

return orig_text;

}

// Driver program to test the above function

int main()

{

string str = "GEEKSFORGEEKS";

string keyword = "AYUSH";

string key = generateKey(str, keyword);

string cipher_text = cipherText(str, key);

cout << "Ciphertext : "

<< cipher_text << "\n";

cout << "Original/Decrypted Text : "

<< originalText(cipher_text, key);

return 0;

}

solniwko [45]3 years ago
4 0

Answer:

C code is given below

Explanation:

// Vigenere cipher

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

/**

* Reading key file.

*/

char *readFile(char *fileName) {

   FILE *file = fopen(fileName, "r");

   char *code;

   size_t n = 0;

   int c;

   if (file == NULL) return NULL; //could not open file

   code = (char *)malloc(513);

   while ((c = fgetc(file)) != EOF) {

      if( !isalpha(c) )

          continue;

      if( isupper(c) )

          c = tolower(c);

      code[n++] = (char)c;

   }

   code[n] = '\0';

  fclose(file);

   return code;

}

int main(int argc, char ** argv){  

   // Check if correct # of arguments given

   if (argc != 3) {

       printf("Wrong number of arguments. Please try again.\n");

       return 1;

   }

 

  // try to read the key file

  char *key = readFile(argv[1]);

  if( !key ) {

      printf( "Invalid file %s\n", argv[1] );

      return 1;

  }

 

  char *data = readFile(argv[2]);

  if( !data ) {

      printf("Invalid file %s\n", argv[2] );

      return 1;

  }

 

   // Store key as string and get length

   int kLen = strlen(key);

  int dataLen = strlen( data );

 

  printf("%s\n", key );

  printf("%s\n", data );

 

  int paddingLength = dataLen % kLen;

  if( kLen > dataLen ) {

      paddingLength = kLen - dataLen;

  }

  for( int i = 0; i < paddingLength && dataLen + paddingLength <= 512; i++ ) {

      data[ dataLen + i ] = 'x';

  }

 

  dataLen += paddingLength;

 

   // Loop through text

   for (int i = 0, j = 0, n = dataLen; i < n; i++) {          

       // Get key for this letter

       int letterKey = tolower(key[j % kLen]) - 'a';

     

       // Keep case of letter

       if (isupper(data[i])) {

           // Get modulo number and add to appropriate case

           printf("%c", 'A' + (data[i] - 'A' + letterKey) % 26);

         

           // Only increment j when used

           j++;

       }

       else if (islower(data[i])) {

           printf("%c", 'a' + (data[i] - 'a' + letterKey) % 26);

           j++;

       }

       else {

           // return unchanged

           printf("%c", data[i]);

       }

      if( (i+1) % 80 == 0 ) {

          printf("\n");

      }

   }

 

   printf("\n");

 

   return 0;

}

You might be interested in
Which of the following grinding methods is best suited to a shorter cylindrical workpiece?
schepotkina [342]
well i dont know but i would go with b :D

4 0
3 years ago
* Describe the five components of a<br> computer
LenaWriter [7]

Answer:

Computer systems consist of three components as shown in below image: Central Processing Unit, Input devices and Output devices. Input devices provide data input to processor, which processes data and generates useful information that's displayed to the user through output devices. This is stored in computer's memory.

5 0
2 years ago
Read 2 more answers
_______For the C programming language, files containing the code you write are named with a file extension of .g. (T/F)
erastovalidia [21]

Answer:

False.

Explanation:

In C programming language the file which containing the code that we are writing the code is have the file extension .c and for c++ it is .cpp.  C programming language is a general purpose procedural computer programming language.

.g file extension is for data chart file format used by APPLAUSE database development software.

Hence the answer to this question is false.

4 0
3 years ago
In computing, what does LAN stand for?​
Arlecino [84]

Answer:

LAN stands for Local Area Network

4 0
3 years ago
Read 2 more answers
Explains your analysis of the impacts of this new internet distribution on people and businesses.
Anika [276]

Answer:

A business' ability to communicate with its employees, customers and associates changed dramatically when the Internet yielded new communication tools. Email and instant messaging have changed the face of business communication.

8 0
2 years ago
Other questions:
  • If you choose a career, you will always be satisfied with your work.<br> True<br> False
    7·2 answers
  • Operating systems are designed to work with specific hardware. Which operating system works with Apple computers?
    8·2 answers
  • What are the disadvantages of cloud computing?
    9·1 answer
  • gAssume that you are writing a program to merge two files named FallStudents and SpringStudents. Each file contains a list of st
    15·1 answer
  • Um can anyone who is really into science and physics answer this question
    7·1 answer
  • I cannot figure out how to cancel my Brainly subscription. I can’t click “account settings” and “cancel subscription” cuz when I
    5·2 answers
  • Can someone help me out with this question?​
    9·1 answer
  • Write the correct word to complete the sentence:
    7·1 answer
  • When a called function completes its task, it normally:_________a. logs its results b. terminates program execution normally c.
    5·2 answers
  • What command will prevent all unencrypted passwords from displaying in plain text in a configuration file?.
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!