You are on page 1of 56

I hate Java, I really do

//Password
Checker
Where I suffer day and night
to make this work

Luaisbetter.com
I hate Java, I really do

System.out.println(“Work Log”);

Timeline(Days);
November
14/11/2022 - Research (What makes a good password)
16/11/2022 - Research (What is encryption)
17/11/2022 - Research (Password Entropy)
22/11/2022 - First Draft
23/11/2022 - Research (Brute Forcing)
29/11/2022 - Research (Hash coding)

December
1/12/2022 - Research (Hash Coding) + Draft 2
2/12/2022 - Peer Review
4/12/2022 - Draft 3 + Finalization + Powerpoint

Luaisbetter.com
I hate Java, I really do

<Research>
A certain and definite article of which is a culmination
relating to a part that which is more whole between to the
individual of which you are listening to has researched
throughout a certain and definite article of which is days

Luaisbetter.com
I hate Java, I really do

String researchContent = new String();

/01 /Entropy /02 /Brute Forcing


(Every possible
(Randomness)
Combination)

/03 /Code Hashing /04 /Implementation


(Turning one String What makes a good
into another) password?

Luaisbetter.com
I hate Java, I really do

/01
/Password
Entropy
Aka. Password Randomness

Luaisbetter.com
I hate Java, I really do

/Password Entropy
- (Noun) A measurement of a password’s randomness

E = log2(RL)

E stands for password entropy.


R stands for possible characters within the password.
L stands for the number of characters in your password.

E > 72 is good 👍

// Reference: (OBE, Password entropy 2021)

Luaisbetter.com
I hate Java, I really do

/02
/Brute
Forcing
Aka. Every Possible Combination

Luaisbetter.com
I hate Java, I really do

/Brute Forcing

/Using AI /Each AI /Avoid this


Trying every Has different By making your
possible efficiency when password longer
combinations brute forcing with more entropy

// Reference: (Blocking brute force attacks N.D.)


Luaisbetter.com
I hate Java, I really do

/03
/Code Hashing
Aka. Converting Strings

Luaisbetter.com
I hate Java, I really do

/Code Hashing

/Idk what is code Hashing /I kind of get it, in a way


I tried to research but it
was too hard. When you take a string and
turn it into another value
I didn’t use code hashing for easier sorting
in my work lol.

// Reference: (freeCodeCamp.org, What is hashing? how hash codes work - with examples 2021) Luaisbetter.com
I hate Java, I really do

/04
/Implementation
How to make a good password :)

Luaisbetter.com
I hate Java, I really do

/What makes a good password (according to me)

/Have high entropy /Length


High entropy makes Longer Password makes it
the code harder to harder to brute force
guess (the time increases
exponentially)

/Variety in character /Not Common


Increases Entropy Not common lol

Luaisbetter.com
I hate Java, I really do

/My Brain Efficiency Chart


0 25 50 75 100

/Entropy /Code Hashing


I kind of Idk what it is.
understand it Don’t ask me

/Brute Force /Implementation


Here’s how much I understand each of my
research topic (out of 100%) I understand it I kinda
very well understand it

Luaisbetter.com
I hate Java, I really do

/How I
Implement codes

Luaisbetter.com
I hate Java, I really do

<Entropy>
How I use Entropy

Luaisbetter.com
I hate Java, I really do

/The most basic methods to calculate Entropy

//Use int for ease of calculation

Luaisbetter.com
I hate Java, I really do

/“A good entropy can shrink and grow” - Mozart

4 types of characters:
1. Lowercase Characters 26 letters
2. Uppercase Characters 26 letters Other initialized variables
3. Symbols 34 symbols
4. Numbers 10 numbers

// Reference: https://medium.com/asecuritysite-when-bob-met-alice/password-entropy-826b3be47261
Luaisbetter.com
I hate Java, I really do
“A good entropy can shrink and grow” - Mozart

Sort through the password one by one for each of the boolean variables

Luaisbetter.com
I hate Java, I really do
“A good entropy can shrink and grow” - Mozart

Where the magic happens

Luaisbetter.com
I hate Java, I really do
“A good entropy can shrink and grow” - Mozart

Where the magic happens

Luaisbetter.com
I hate Java, I really do

<MY LOOP>
Luaisbetter.com
I hate Java, I really do

/How I structured my loop

I:
- Set up a while (true) loop
- Break the loop whenever the password doesn’t
meet one of my requirements

Luaisbetter.com
I hate Java, I really do

/How I structured my loop

Why?

- This will prevent the program to check for other


criteria if one of the previous ones isn’t valid

Luaisbetter.com
I hate Java, I really do

/My Criterias

My “Good Password” Conditions

Luaisbetter.com
I hate Java, I really do

/My Good Password


//This picture is captured straight from my microsoft onenote

//Reference: (R/youshouldknow - YSK: Password best practices N.D)

Luaisbetter.com
I hate Java, I really do

Public static void Checklist(){ //chronological order

1. Common? 2. Common 2.0? 3. Complete?


Is it a common Does it include
Is the password
password with all the
a common one? special characters? characters?

4. Entropy? 5. Repetition? 6. No Spaces


Is it Are there any
randomized repeating NO SPACES
enough? letters?

Luaisbetter.com
I hate Java, I really do

<NO SPACES>
Luaisbetter.com
I hate Java, I really do

/No Spaces
I want to make my life easier (no space bar in password)

Luaisbetter.com
I hate Java, I really do

Mr. Task

/Is it a common
password?
Thank you Mr.Task for the code :D

Luaisbetter.com
I hate Java, I really do

/Common Password

I just borrow Mr.Task’s code


(with some change tho)

Changes:
- Return boolean (for ease of use)
- Name Change
- Longer List (999,999 words)

Luaisbetter.com
I hate Java, I really do

Opal

/Is it a common
password 2.0?
No substitutions

Luaisbetter.com
I hate Java, I really do

/Common Password 2.0

Some people substitute symbols for letters.

Example/
- p@ssw0rd
- $uperun!dentifi@ble
- Etc.

//We don’t want this

Luaisbetter.com
I hate Java, I really do

/Common Password 2.0


Here’s how I handled that

/*
I made another string that substitutes any
special characters (I only included a few tho)
*/

Luaisbetter.com
I hate Java, I really do

Opal

/All Characters?

Does it contains every type of


characters?

Luaisbetter.com
I hate Java, I really do

/Include all characters


Must have AT LEAST

Character Symbol Number


1 Uppercase 1 Symbol (Any) 1 Number (Any)
1 Lowercase

Luaisbetter.com
I hate Java, I really do

/Include all characters

Luaisbetter.com
I hate Java, I really do

/Include all characters

Luaisbetter.com
I hate Java, I really do

Opal

/Entropy

High enough?

Luaisbetter.com
I hate Java, I really do
We already went through this

Since you get disqualified for not having every type of character, only
length affects the entropy.

Luaisbetter.com
I hate Java, I really do

/Entropy

Luaisbetter.com
I hate Java, I really do

Opal

/Repetition

Repeat no more than 2 times

Luaisbetter.com
I hate Java, I really do

/Repetition

/First Time /Second Time /Third Time /NO MORE


The second time You failed of
The first time Third time’s
might be a it repeats 3
is okay the charm
coincidence times

Luaisbetter.com
I hate Java, I really do

/Repetition

The index starts at 2 because it I want to check 3 letters (starts at 0)

Luaisbetter.com
I hate Java, I really do

Opal

/That’s it

If you pass all that, you win!

Luaisbetter.com
I hate Java, I really do

/That’s it

Your password strength is determined by the entropy and


the qualifications

Luaisbetter.com
I hate Java, I really do

<Draft 1>
Experimenting with types of characters

<Draft 2>
Working with common passwords and entropy

<Draft 3>
Add specialized characters as substitution
and more

Luaisbetter.com
I hate Java, I really do

/Draft 1

Checks for every type of characters


- Uses points to grade points/4
- Check for repeating characters types (deduct points
for repeating)
- Use String to grade character types

Luaisbetter.com
I hate Java, I really do

/Draft 1
Use passConst to capture
character types (My first
hashcode implementation)

Ex/
Password = Mypass@123
passConst = ulllllsnnn

//Grade points based on


passconst

Luaisbetter.com
I hate Java, I really do

/Draft 1
Before: use types + After: Use specific
passConst characters

Luaisbetter.com
I hate Java, I really do

/Draft 2

- Can’t contain space

Luaisbetter.com
I hate Java, I really do

/Draft 2
First Entropy Calc Prototype
- Entropy is dynamic (doesn’t change with character types)
- Every possible character is 171 (fixed number)

Luaisbetter.com
I hate Java, I really do

/Draft 3
Specialized Characters

Luaisbetter.com
I hate Java, I really do

/Draft 3
Repeated Characters (Draft 2)

- Uses another index for the loop


- Multiple char variables

Luaisbetter.com
I hate Java, I really do

/Sources
Entropy
OBE, P. B. B. (2021, November 14). Password entropy. Medium.
Retrieved December 4, 2022, from
https://medium.com/asecuritysite-when-bob-met-alice/password-entr
opy-826b3be47261

Brute Forcing
Blocking brute force attacks. Blocking Brute Force Attacks |
OWASP Foundation. (n.d.). Retrieved December 4, 2022, from
https://owasp.org/www-community/controls/Blocking_Brute_Force_Att
acks#:~:text=A%20brute%2Dforce%20attack%20is,for%20a%20brute%2Dfo
rce%20attack

Luaisbetter.com
I hate Java, I really do

/Sources
Code Hashing
freeCodeCamp.org. (2021, April 28). What is hashing? how hash
codes work - with examples. freeCodeCamp.org. Retrieved December
4, 2022, from https://www.freecodecamp.org/news/what-is-hashing/

Implementation
R/youshouldknow - YSK: Password best practices. reddit. (n.d.).
Retrieved December 4, 2022, from
https://www.reddit.com/r/YouShouldKnow/comments/gzq3bq/ysk_passwo
rd_best_practices/

Luaisbetter.com
I hate Java, I really do

<THE END>
Questions?
Go to IHATEJAVA.COM

Luaisbetter.com

You might also like