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
Serggg [28]
3 years ago
13

Traditional password entry schemes are susceptible to "shoulder surfing" in which an attacker watches an unsuspecting user enter

their password or PIN number and uses it later to gain access to the account. One way to combat this problem is with a randomized challenge-response system. In these systems, the user enters different information every time based on a secret in response to a randomly generated challenge. Consider the fol- lowing scheme in which the password consists of a five-digit PIN number (00000 to 99999). Each digit is assigned a random number that is 1, 2, or 3. The user enters the random numbers that correspond to their PIN instead of their actual PIN numbers.For example, consider an actual PIN number of 12345. To authenticate the user would be presented with a screen such as:PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 3 2 3 1 1 3 2 2 1 3The user would enter 23113 instead of 12345. This doesn’t divulge the password even if an attacker intercepts the entry because 23113 could correspond to other PIN numbers, such as 69440 or 70439. The next time the user logs in, a different sequence of random numbers would be generated, such as: PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 1 1 2 3 1 2 2 3 3 3Your program should simulate the authentication process. Store an actual PIN number in your program. The program should use an array to assign random numbers to the digits from 0 to 9. Output the random digits to the screen, input the response from the user, and output whether or not the user’s response correctly matches the PIN number.I have this code so far, but would like to input cstrings and vectors to fulfill the requirements, I need help with that. This is for c++ for beginners#include #include #include #include using namespace std;void generateRandomNumbers(int *random){ // Use current time as seed for random generatorsrand(time(0));for(int i=0;i<10;i++){random[i] = 1 + rand() % 3;}}bool isMatch(string pin,string randomPin,int *random){int index;for(int i=0;i<(int)pin.length();i++){ //converting pin number to int so that we can check the random number at that indexindex = pin[i]-'0';if((randomPin[i]-'0') != random[index-1])return false;}return true;}int main(){string pin = "12345";string randomPin;int random[10];generateRandomNumbers(random);cout << "Randomly Generated numbers " << endl;for(int i=0;i<10;i++){cout << random[i] << " ";}cout << endl;cout << "Now Enter your pin interms of random numbers: ";cin >> randomPin;if(isMatch(pin,randomPin,random)){cout << "Both matches" << endl;}else{cout << "Sorry you entered wrong pin.." << endl;}}
Engineering
1 answer:
KengaRu [80]3 years ago
3 0

The following code or the program will be used:

<u>Explanation:</u>

import java.util.Scanner;

public class Authenticate

{

public static void main(String[] args)

{

// Actual password is 99508

int[] actual_password = {9, 9, 5, 0, 8};

// Array to hold randomly generated digits

int[] random_nums = new int[10];

// Array to hold the digits entered by the user to authenticate

int[] entered_digits = new int[actual_password.length];

// Randomly generate numbers from 1-3 for

// for each digit

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

{

random_nums[i] = (int) (Math.random() * 3) + 1;

}

// Output the challenge

System.out.println("Welcome! To log in, enter the random digits from 1-3 that");

System.out.println("correspond to your PIN number.");

System.out.println();

System.out.println("PIN digit: 0 1 2 3 4 5 6 7 8 9");

System.out.print("Random #: ");

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

{

System.out.print(random_nums[i] + " ");

}

System.out.println();

System.out.println();

// Input the user's entry

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter code.");

String s = keyboard.next();

String s = keyboard.next();

// Extract the digits from the code and store in the entered_digits array

for (int i=0; i<s.length(); i++)

{

entered_digits[i] = s.charAt(i) - '0'; // Convert char to corresponding digit

}

// At this point, if the user typed 12443 then

// entered_digits[0] = 1, entered_digits[1] = 2, entered_digits[2] = 4,

// entered_digits[3] = 4, and entered_digits[4] = 3

/****

TO DO: fill in the parenthesis for the if statement

so the isValid method is invoked, sending in the arrays

actual_password, entered_digits, and random_nums as

parameters

***/

if (isValid (actual_password, entered_digits, random_nums)) // FILL IN HERE

{

System.out.println("Correct! You may now proceed.");

}

else

{

System.out.println("Error, invalid password entered.");

}

/***

TO DO: Fill in the body of this method so it returns true

if a valid password response is entered, and false otherwise.

For example, if:

actual = {9,9,5,0,8}

randnums = {1,2,3,1,2,3,1,2,3,1}

then this should return true if:

entered[0] == 1 (actual[0] = 9 -> randnums[9] -> 1)

entered[1] == 1 (actual[1] = 9 -> randnums[9] -> 1)

entered[2] == 3 (actual[2] = 5 -> randnums[5] -> 3)

entered[3] == 1 (actual[3] = 0 -> randnums[0] -> 1)

entered[4] == 3 (actual[4] = 8 -> randnums[8] -> 3)

or in other words, the method should return false if any of

the above are not equal.

****/

public static boolean isValid(int[] actual, int[] entered, int[] randnums)

{

int Index = 0;

boolean Valid = true;

while (Valid && (Index < actual.length))

{

int Code = actual[Index];

if (entered [Index] != randnums [Code])

{

Valid = false;

}

Index++;

}

return Valid;

}

You might be interested in
A proposed piping and pumping system has 20-psig static pressure, and the piping discharges to atmosphere 160 ft above the pump.
larisa86 [58]

Answer: (B) 100

Explanation:

Given that;

Pstatic = 20 psig , hz = 160ft, hf = 20ft

Now total head will be;

T.h = hz + hf

T.h= 160 + 20

T.h = 180ft

Minimum pressure = Psatic + egh

we know that specific weight of water is 62.4 (lb/ft3)

so

P.min = (20 bf/in² ) + (62.4 b/ft³ × 180 fr

P.min = (20 bf/in² ) + ( 62.4 × 180 × 1 ft²/144 in²)

P.min = 20 + 78

P.min = 98 lbf/in²

Therefore the minimum pressure rating (psi) of the piping system is most nearly B) 100

7 0
3 years ago
In a right triangle, the square of the length of one side is equal to the sum of the squares of the lengths of the other two sid
Dovator [93]

Answer:

C++ code is explained below

Explanation:

/Remove the following line

//if not using visual studio.

#include "stdafx.h"

//Import the required header files.

#include <iostream>

using namespace std;

//Define the main function.

int main(void)

{

    //Define the variables.

    double side1, side2, side3;

    //Prompt the user to enter the sides of the triangle.

    cout << "Enter the side of the triangle:" << endl;

    cout << "Enter first side of triangle:" << endl;

    cin >> side1;

    cout << "Enter second side of triangle:" << endl;

    cin >> side2;

    cout << "Enter third side of triangle:" << endl;

    cin >> side3;

    cout << endl;

    //Check if the triangle sides are valid

    if ((side1 + side2 > side3) &&

         (side1 + side3 > side2) &&

         (side2 + side3 > side1))

    {

         //Check the condition for right angle triangle

         if ((side3*side3 == (side1*side1 + side2*side2)) ||

             (side2*side2 == (side3*side3 + side1*side1)) ||

             (side1*side1 == (side3*side3 + side2*side2)))

//Display that the triangle is right-angled triangle.

             cout << "It is a right-angled triangle." << endl;

         else

//Display that the triangle is not the right-//angled triangle.

             cout << "It is not a right-angled triangle."

<< endl;

    }

    else

         //Display not the valid side.

         cout << "Not a valid side." << endl;

    //Remove the following line if

    //not using visual studio.

    system("pause");

    return 0;

}

8 0
3 years ago
A tailgate may have a latch on both sides.<br> O True<br> O False
stepladder [879]

Answer:

true

Explanation:

3 0
2 years ago
Read 2 more answers
Traffic at a roundabout moves
sweet-ann [11.9K]

Answer:

b-counter-clockwise

Explanation:

3 0
3 years ago
Heating of Oil by Air. A flow of 2200 lbm/h of hydrocarbon oil at 100°F enters a heat exchanger, where it is heated to 150°F by
irakobra [83]

Answer:

2062 lbm/h

Explanation:

The air will lose heat and the oil will gain heat.

These heats will be equal in magnitude.

qo = -qa

They will be of different signs because one is entering iits system and the other is exiting.

The heat exchanged by oil is:

qo = Gp * Cpo * (tof - toi)

The heat exchanged by air is:

qa = Ga * Cpa * (taf - tai)

The specific heat capacity of air at constant pressure is:

Cpa = 0.24 BTU/(lbm*F)

Therefore:

Gp * Cpo * (tof - toi) = Ga * Cpa * (taf - tai)

Ga = (Gp * Cpo * (tof - toi)) / (Cpa * (taf - tai))

Ga = (2200 * 0.45 * (150 - 100)) / (0.24 * (300 - 200)) = 2062 lbm/h

5 0
3 years ago
Other questions:
  • The boiler pressure is 38bar and the condenser pressure 0.032 bar.The saturated steam is superheated to 420 oC before entering t
    8·1 answer
  • A hollow steel tube with an inside diameter of 100 mm must carry a tensile load of 400 kN. Determine the outside diameter of the
    12·2 answers
  • Explain the difference in the heat transfer modes of conduction and convection.
    14·1 answer
  • Communication "works" to the degree that a wide variety of information is completely and thoroughly shared among the parties, an
    13·1 answer
  • Write a function separatethem that will receive one input argument which is a structure containing fields named length and width
    8·1 answer
  • You are a technical writer for Landson Toy Company. Landson has just designed a new, more durable swing set for 6- to 10-year-ol
    9·1 answer
  • Select the correct answer.
    5·1 answer
  • What is the difference between digital instruments and decimal scaled instruments to measure
    6·1 answer
  • WILL MARK BRAINLIST I need help on this asap thanks
    15·1 answer
  • Which of the following is MOST likely to be true about a service manager?
    8·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!