CMSC204Assignment 1PasswordsConcepts tested by this program:ArrayListstaticRead FilesJavadocJUnit TestsExceptionsCreate an application that will check for valid passwords. The following rules must be followed to create a valid password.1.At least 6 characters long2.10 or more characters is a strong password, between 6 and 9 characters is a weak (but acceptable) password.3.At least 1 numeric character4.At least 1 uppercase alphabetic character5.At least 1 lowercase alphabetic character6.At least 1 special character7.No more than 2 of the same character in a sequence[email protected] – OK[email protected] – not OK[email protected] – OKSpecial Characters:Special characters are a selection of punctuation characters that are present on standard US keyboard and frequently used in passwords.CharacterNameSpace!Exclamation”Double quote
Operation:When the application begins, the user will be presented with a screen that states the above instructions for creating a password, two text entry boxes for typing in a password, and three buttons. If the user wants to check a single password, they will type in the password in both boxes and select the “Check Password” button.If the user wants to read in and check a list of passwords, they will select the “Check Passwords in File” button, be presented with a file explorer, and select the file to read from. Those passwords that failed the check will be displayed, with their error message.Specifications:The Data ElementStringThe Data StructureArrayList of StringsUtility Class1.Create a PasswordCheckerUtility class based on the Javadoc given you. 2.The PasswordCheckerUtility class will have at least three public methods: isValidPassword:This method will check the validity of one password and return true if the password is valid and throw one or more exceptions if invalid. isWeakPassword:This method will che throw an exception. getInvalidPasswordsThis method will check an ArrayList of passwords and return an ArrayList with the status of any invalid passwords (weak passwords are not considered invalid).