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
xxMikexx [17]
3 years ago
10

In this assignment you'll write a program that encrypts the alphabetic letters in a file using the Hill cipher where the Hill ma

trix can be any size from 2 x 2 up to 9 x 9. The program can be written using one of the following: C, C++, or Java. 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 Parameters1. Your program compile and run from the command line.2. The program executable must be named "hillcipher" (all lowercase, no spaces or file extension).3. 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.4. Your program should open the two files, echo the 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 of alphabetic characters, pad the last block as necessary with the letter 'X'. It is necessary for us to do this so we can know what outputs to expect for our test inputs.

Computers and Technology
1 answer:
mafiozo [28]3 years ago
4 0

Answer: Provided in the explanation section

Explanation:

C++ Code

#include<iostream>

#include<fstream>

#include<string>

using namespace std;

// read plain text from file

void readPlaneText(char *file,char *txt,int &size){

  ifstream inp;

 

  inp.open(file);

 

  // index initialize to 0 for first character

 

  int index=0;

  char ch;

 

  if(!inp.fail()){

      // read each character from file  

      while(!inp.eof()){

          inp.get(ch);

          txt[index++]=ch;

      }

  }

 

  // size of message

  size=index-1;

}

// read key

int **readKey(char *file,int **key,int &size){

  ifstream ink;

 

  //

  ink.open(file);

      if(!ink.fail()){

         

          // read first line as size

      ink>>size;

     

      // create 2 d arry

      key=new int*[size];

     

      for(int i=0;i<size;i++){

          key[i]=new int[size];

      }

     

      // read data in 2d matrix

      for(int i=0;i<size;i++){

          for(int j=0;j<size;j++){

              ink>>key[i][j];

          }  

      }

  }

  return key;

}

// print message

void printText(string txt,char *msg,int size){

  cout<<txt<<":\n\n";

 

  for(int i=0;i<size;i++){

      cout<<msg[i];

  }

}

// print key

void printKey(int **key,int size){

  cout<<"\n\nKey matrix:\n\n";

  for(int i=0;i<size;i++){

      for(int j=0;j<size;j++){

          cout<<key[i][j]<<" ";

      }  

      cout<<endl;

  }

}

void encrypt(char *txt,int size,int **key,int kSize,char *ctxt){

  int *data=new int[kSize];

 

  for(int i=0;i<size;i=i+kSize){  

 

  // read key size concecutive data

      for(int a=0;a<kSize;a++){

          data[a]=txt[i+a]-'a';

      }

     

      // cipher operation

      for(int a=0;a<kSize;a++){

          int total=0;

          for(int b=0;b<kSize;b++){

              total+=key[a][b]*data[b];

          }  

          total=total%26;

          ctxt[i+a]=(char)('a'+total);

      }      

  }

}

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

  char text[10000];

  char ctext[10000];

  int **key;

  int keySize;

  int size;

  // input

  key=readKey(argv[1],key,keySize);

  readPlaneText(argv[2],text,size);

  encrypt(text,size,key,keySize,ctext);

 

  // output

  printKey(key,keySize);

  cout<<endl<<endl;

  printText("Plaintext",text,size);

  cout<<endl<<endl;

  printText("Ciphertext",ctext,size);

 

  return 0;

}

cheers i hope this helped !!!

You might be interested in
Create a variable ‘temp’ and assign the value in Celsius. Display the message ‘It’s extremely hot day today!’ if the temperature
Svetlanka [38]

Answer:

temp = 47

if temp > 40:

   print("It’s extremely hot day today!")

else:

   print("It’s not too hot!")

Explanation:

*The code is in Python.

Create a variable called temp and set its value as 47

Check the temp using if-else structure. If the temp is greater than 40, print "It’s extremely hot day today!". Otherwise, print "It’s not too hot!".

8 0
4 years ago
Suppose you want to write an if statement with multiple alternatives to print out someone's tax bracket based on their income. A
soldier1979 [14.2K]

Answer:

b) The conditions should use an if else/if else sequence, not just independent if statements

hope it answers the question:)

6 0
3 years ago
Which statements are true? Select 4 options.
kolezko [41]

Answer: All of the answers are correct EXCEPT "An instance of a class cannot be changed after it is created.

Explanation: I've done the problem. Also, if you have an instance of a class, you can no longer change it. It is frozen in time as that one instance. If had a class defining pets and you made an instance dogA where the pet was a brown medium sized dog, dogA would always be a brown medium sized dog. I think, at least.

4 0
3 years ago
A(n) _____ access file is also known as a direct access file.
zloy xaker [14]
The answer to the question asked  above is <span>remote direct memory .

</span>A remote direct memory  access file is also known as a direct access file.

Hope my answer would be a great help for you.    If you have more questions feel free to ask here at Brainly.

5 0
3 years ago
Artists who draw images on a computer often use a stylus in conjunction with special _________ tablets, which offer extra-sensit
hodyreva [135]

Answer:

Graphics is the correct answer to the following question.

Explanation:

The following answer is true because Graphic tablet is the device in which a person can draw graphics, images or they can also draw by their hands with use of digital pen which is use for drawing as they draw images on the paper. we can also say the graphic tablet is used for the digital art.

So, That's why the following answer is correct.

6 0
3 years ago
Other questions:
  • To include all fields in a sql query, use the ____ symbol after the word select.
    7·1 answer
  • You work at a computer repair store. You just upgraded the processor (CPU) in a customer's computer. The computer starts, but it
    11·2 answers
  • For a typically large organization how many dns servers should you install
    5·1 answer
  • The web server software used has a significant impact on how a web site's web pages look on a user's computer.
    7·1 answer
  • Given variables first and last, each of which is associated with a str, representing a first and a last name, respectively. Writ
    13·1 answer
  • Answer ASAP and I'll give brainliest.
    10·2 answers
  • In order to create strong neural networks (connections) in your brain, you've got to __________ the learning process.
    14·1 answer
  • The Internet was first used by which of the following institutions?
    7·1 answer
  • A specific type of computer program that manages the other programs on a computer
    6·1 answer
  • Definition of Computer forensics?
    12·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!