Assignment: #PasswordChecker Due: 03/31/02019 Points: 4

Specification

This program checks the strength of a user entered password.

Define a variable named score and set it to zero.

Add 1 to score if password length is six or greater.

Add 1 to score if password contains at least one uppercase character.

Add 1 to score if password contains at least one lowercase character.

Add 1 to score if password contains at least one digit character.

Add 1 to score if password contains at least one punctuation character.

Subtract 5 from score if the password is any of the following "most-used" passwords or their reverse.

     password    123456      12345678    qwerty
     baseball    football    letmein     111111      
     superman    master      harley

Print the value of the score variable prior to exiting the program.

Example Scores for Testing

Oracle.com::API Documentation for class String

Help Reading the Standard Input Stream

Put the following statement at the top of your dot-java file.

   import java.util.Scanner;

The following code goes in your main method.

    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter a password: ");
    String password = scanner.next();
Character Classification Rules

Note: Java uses the Unicode character set. The ASCII character set is the first 128 characters of the Unicode character set.

Upper-case letters range from 'A' to 'Z' inclusive.

Lower-case letters range from 'a' to 'Z' inclusive.

Digits range from '0' to '9' inclusive.

Punctuation marks range from   '!'   to   '/'   (inclusive) and from   ':'   to   '@'   (inclusive) and from   '['   to   '`'   (inclusive) and from   '{'   to   '~'   (inclusive).

ASCII Chart

|  0 NUL|  1 SOH|  2 STX|  3 ETX|  4 EOT|  5 ENQ|  6 ACK|  7 BEL|
|  8 BS |  9 HT | 10 NL | 11 VT | 12 NP | 13 CR | 14 SO | 15 SI |
| 16 DLE| 17 DC1| 18 DC2| 19 DC3| 20 DC4| 21 NAK| 22 SYN| 23 ETB|
| 24 CAN| 25 EM | 26 SUB| 27 ESC| 28 FS | 29 GS | 30 RS | 31 US |
| 32 SP | 33  ! | 34  " | 35  # | 36  $ | 37  % | 38  & | 39  ' |
| 40  ( | 41  ) | 42  * | 43  + | 44  , | 45  - | 46  . | 47  / |
| 48  0 | 49  1 | 50  2 | 51  3 | 52  4 | 53  5 | 54  6 | 55  7 |
| 56  8 | 57  9 | 58  : | 59  ; | 60  < | 61  = | 62  > | 63  ? |
| 64  @ | 65  A | 66  B | 67  C | 68  D | 69  E | 70  F | 71  G |
| 72  H | 73  I | 74  J | 75  K | 76  L | 77  M | 78  N | 79  O |
| 80  P | 81  Q | 82  R | 83  S | 84  T | 85  U | 86  V | 87  W |
| 88  X | 89  Y | 90  Z | 91  [ | 92  \ | 93  ] | 94  ^ | 95  _ |
| 96  ` | 97  a | 98  b | 99  c |100  d |101  e |102  f |103  g |
|104  h |105  i |106  j |107  k |108  l |109  m |110  n |111  o |
|112  p |113  q |114  r |115  s |116  t |117  u |118  v |119  w |
|120  x |121  y |122  z |123  { |124  | |125  } |126  ~ |127 DEL|

Just4Fun: Stuff About Passwords...

[update::2014.01.20] NewsFeed.Time.com::The 25 Worst Passwords of 2013
[update::2014.01.24] NakedSecurity.Sophos.com::Are our passwords really that bad? And does it really matter?
[update::2016.01.20] NakedSecurity.com::These are the 25 worst passwords of 2015
[update::2018.01.07] SecurityMagazine.com::The Worst Passwords of 2017 Revealed
[update::2018.12.13] DigitalTrends.com::These are the worst passwords of 2018