Presentation is loading. Please wait.

Presentation is loading. Please wait.

A453 Exemplar Password Program using VBA

Similar presentations


Presentation on theme: "A453 Exemplar Password Program using VBA"— Presentation transcript:

1 A453 Exemplar Password Program using VBA
Mr Travi Royal Grammar School No 1

2 The basic requirements
Input a password Is the password between 6 and 12 characters long No reject and return to Stage 1 Yes output message and write the password to the spreadsheet file Check each character of the password in turn Is the character lower case if yes add 1 to the lower character counter Is the character upper case if yes add 1 to the upper character counter Is the character a number if yes add 1 to the numeric character counter Is the character non numeric or text if yes add 1 to the punctuation character counter If 1 different character type is used then the password status is set to weak i.e. if lower characters are greater than 1 and upper , numeric and punctuation characters are less than If 2 different character types are used then the password status is set to medium If 3 different character types are used then the password status is set to strong If 4 different character types are used then the password status is set to extra strong List of passwords are stored in an array and results showing whether weak, medium, strong or extra strong are displayed in a spreadsheet Select a password to amend and change it Search a password from within the array and replace it

3 Flow chart of the program
Start Input a password Is it greater than 6 characters Is it greater than 6 characters No yes Is it greater than 12 characters

4 Flow chart of the program
Is the character lcase or lowercase ? lowers = lowers +1 yes No Is the character ucase or Uppercase ? Uppers= Uppers+1 Yes Is the character Numeric ? Numbers = Numbers + 1 Output password OK and write to spreadsheet file Set Counter, uppers, lowers, numerics Puncts to Zero No For each character in password No Punct = punct + 1 Yes Is the character not lcase or ucase or numeric?

5 REPEAT INPUT the password len=length of password IF len <6 OR len >12 THEN PRINT suitable error message UNTIL len >=6 and <=12 PRINT password OK Initialise upper, lower, puncts and number to 0 FOR i = 1 TO len For Counter = 1 To Len(ValidPassword(howmanypasswords)) Select Case Asc(Mid(ValidPassword(howmanypasswords), Counter, 1)) Case 47 To 57 numerics = numerics + 1 Case 65 To 90 uppers = uppers + 1 Case 97 To 122 lowers = lowers + 1 Case Else puncts = puncts + 1 End Select Next Counter If uppers > 0 And lowers > 0 And puncts > 0 And numerics > 0 Then passwordstatus = "Extra Strong" ElseIf uppers > 0 And lowers > 0 And numerics > 0 Then passwordstatus = "Strong" ElseIf alphas > 0 And (puncts > 0 Or numerics > 0) Then passwordstatus = "Medium" ElseIf uppers > 0 And lowers > 0 Then passwordstatus = "Medium“ Else passwordstatus = "Weak“ Endif No All characters checked? Password status = uppers, l+ owers, numerics + Puncts Output password strength and write to file Stop

6 Weak, Medium, Strong and Extra Strong identified: Weak Medium Strong
We need a test strategy to use during development to show that the solution works at each stage. Requirement: characters Less than 6 6 exactly >6 and <12 12 exactly More than 12 MrTra MrTrav MrTravi MrTravirocks MrTraviuiopasd 5 characters should be rejected 6 characters, boundary, should be OK 7 characters, valid input should be OK 12 characters, boundary, should be OK 13 characters should be rejected Weak, Medium, Strong and Extra Strong identified: Weak Medium Strong Extra Strong mrtravi MRTRAVI 123456 MrTravi Awerty Zwerty 3werty 3WERTY Q23456 qwe456 1w3r5y QW345Y QW34ty 12erTY MrT:O521542 01mL;*&EWa All lower / upper case/ numeric: weak reported 1 upper case, rest lower, also test A and Z accepted Medium reported All medium strength combinations and With differing quantities of numbers and letters Both cases and numeric used, Strong reported All lower / upper case/ numeric/ punct:

7 Main program User Interface Set up variables
Validpasswords() is an array where the passwords entered by the user and written after they have passed a length test. This is a dynamic array and the results of this are written to the spreadsheet file Password status records the results of the processing of the program to determine whether the password is weak, medium, strong or extra strong User Interface The user interface has Txtinput – a textbox to allow the user to enter the password. In the properties I have set the passwordchar property to * to mimic the entry of passwords The sub here updates each time a character is entered and outputs the number of characters that the password contains and what the status of the password being entered. For example

8 This shows what happens when just 2 characters have been entered the message displays ‘too short
Here 7 characters have been entered and the password length is OK Here 14 characters have been entered and the password length is too long

9 The user interface has a label where the length of the password is displayed and the status of the password as it is enter I have used several command buttons CmdOk executes the main part of the program CmdStartAgain will allow the user to reinitiate the program and toe enter the password again CmdBonnet allows the user to say statistics about the password that has been entered, how lcase, ucase, mumeric and punctuation characters have been uesd CmdBack makes the cmdbonnet visuble and lblstatus.visible property set to false Lblstatus – 0nce the password has been accepted as valid the lblstatus label is set to visible and the password is displayed over the top of the text box where the password was entered into Lblstrength the password status is displayed in this label.

10 I have entered a 5 character password and pressed CMDOk and invalid password has been returned
This initialises the array to make the array value equal to the number of passwords entered + 1

11 I have enclosed here with the program some main pseudocode
I have enclosed here with the program some main pseudocode. Msgbox txtinput.text displays a message and can help in the testing process The sub accumulator can only run if the function which I have created lengthOk is true. Within the function there are 2 locally defined variables atLeast6long and max12long which have to be true for the function I have created to be true

12 The accumulator module
This sub checks how many of each type of character appear in the password. The character is converted into its ASCII value 47 – 57 – numeric characters – lower case characters 97 – 122 Upper case characters All other ASCII characters are counted as punctuation marks The sub calculates the value of the character for each password and adds up the total number of lower, upper, numerical and punctuation characters. The password strength is processed using a nested if statement to work out if the password is weak, medium, strong or extra strong The results of the program are written to the lblbonnet,caption and written to the sheet This part of the sub writes the numbers of lowers, uppers, numeric and puncts to the sheets and the status result is written there

13 Howmanypasswords is a function created using a function with the spreadsheet and courting up how many entries are recorded in column A when the results of the program are being processed and written to When the form is activated the sub init is initialised This sets up the initial values and loads them into the variables

14 This loads the passwords into the array and writes the password to the spreadsheet file. The counter is set to the number of passwords already stored in the array. This sub searches through the array to see if a password is in the array and then displays it.

15 Testing Section Test Data Expected Actual / Comment Test Data Expected
To see what happens when there are less than 6 characters mrtra Should be rejected Was rejected To see what happens if 6 characters are used mrtrav Should be accepted and processed as weak Accepted and processed as weak To see what happens when 7 characters are used mrtravi Test Data Expected Actual / Comment To see what happens when all numeric characters are used 521423 Should be accepted and status should be processed as weak Was accepted and processed as weak To see what happens if 7 characters including a capital letter are used Mrtravi Should be accepted and processed as medium Accepted and processed as medium To see what happens when a number and capital letters are used 3WERTY Should be accepted and processed as medium

16 Testing Section Test Data Expected Actual / Comment
To see what happens when a combination of lower case , uppercase and numeric characters are used QW34ty Should be accepted as strong Accepted and processed as strong To see what happens when a combination of lower , upper case, numerical and punctuation characters are used MrT:O521542 Should be accepted and processed as extra strong Accepted and processed as extra strong To perform a search through the array holding the passwords records Record 2 Should display the password MrT:O521542 and highlight password status is displayed as extra strong Test Data Expected Actual / Comment To change a password held in the array mrtravi To change mrtravi to mrtravirocks Password was changed

17 Test 1 I have entered mrtra as a password with 5 characters this has been rejected I have entered mrtrav as a password with 6 characters this has been accepted and the status accepted as weak as this used all lower case characters Test 2

18 Test 3 This shows that the password has been accepted and written to the spreadsheet Test 4 The counts all the numeric characters and processes the password status as weak

19 Test 5 Here 1 capital letter and 6 lower case letters have been used and the password status has been processed as medium as expected Test 6 This combination of uppercase letters and numbers has returned a medium password classification

20 Test 7 I have used here a combination of 2 uppercase, 2 lowercase letters and 2 numerical characters and this has returned a strong password Test 8 I have used a combination of 2 uppercase, 2 lowercase letters, numerical and punctuation characters which as returned an extra strong password

21 First has to search for record mrtravi Record located
Test 9 Test 10 First has to search for record mrtravi Record located

22 Password has been successfully searched and amended


Download ppt "A453 Exemplar Password Program using VBA"

Similar presentations


Ads by Google