0% found this document useful (0 votes)
102 views42 pages

Notes and Password Manager

Uploaded by

mithunesh001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views42 pages

Notes and Password Manager

Uploaded by

mithunesh001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 42

NOTES

AND
PASSWO
RD
MANAGE
R
ABSTRACT

These days many web accounts for email, banking, blogging,


online shopping, creating new accounts etc. have a problem when
it comes to selecting passwords for all these different accounts.
Since each of these accounts requires a single password, if the
hacker manages to obtain one of the passwords, he/she will easily
access the other’s user account including all details. However,
when user use various passwords for different systems, they may
select weak or passwords which they can remember easily. It
raises the operational and user support cost related to password
resets.

So, to overcome with this issue we are working to develop a


secure password manager that can store multiple user accounts
and passwords. The password manager provides excellent
usability and user-friendliness for users and protect data to
ensure optimum security for the user.

It's an intuitive, straightforward GUI-based program. Its numerous


features improve the user experience. Passwords for several apps
can be kept in this program. Information such as the application
or website, name, login, password, and email address are needed
to keep the passwords secure
INTRODUCTION
Passwords are an essential component for providing security. When it comes to
protecting practically all data including networks, servers, databases etc. passwords
serve as a first line of protection. Password manager gives the ability to save,
generate, and enter strong one-of-a-kind passwords. User don’t have to worry
about forgetting or misplacing their passwords because password managers keep
track for them. Using a password and notes manager is essential because:

1. It has an intuitive user interface that makes it simple for users to comprehend and
utilize in an efficient manner.

2. It improves security by shielding from unwanted access

3. By creating a strong password automatically and doing away with the necessity
for human password formation, it saves time. The Java password and note manager
tackles a pertinent modern problem—that is, the growing significance of data
security and privacy. The firm is continuously at danger of data breaches and
illegal access to sensitive information as a result of the increasingcyber risks that
come with technological advancements. This concept aligns with current concerns
about cybersecurity threats, data privacy, remote work, and digital cooperation.

In its most basic form, a password manager is a program that stores a user's login
credentials, such as their username and password, to lessen the cognitive strain of
having to remember numerous different login credentials. This collection of
passwords is called a password vault. Ideally, the vault should be kept encrypted,
and the master password—a password selected by the user—should provide the
encryption key. If desired, the password vault can be stored online, enabling
synchronization across many devices. In addition to storing user-selected
passwords, the majority of password managers available today also let users create
new passwords. In this project app is created in which there is a login page, if a
user is new then he/she first of all registered herself/himself. After getting
registered he/she able to login with that page and then a page open where he/she
can store his/her passwords along with the websites name also if he/she wants to
add or delete or want to update can update with the given options on the page
below.
EXISTING SYSTEM
A Java-based password and note management project's background investigation
comprises a detailed analysis of the market environment, accounting for prior
research, technological advancements, and user needs. Below is a summary of the
background research for this kind of project: Security Environment: It's critical to
comprehend how cybersecurity threats and password-related vulnerabilities have
evolved over time. Examine the most recent hashing techniques, access control
plans, and encryption algorithms to guarantee robust data security. Password
manager trends Looking at well-known note-taking and password apps on various
platforms will make it easier for you to identify common features, security best
practices, and usability standards in current solutions. Examining user feedback
will assist you in identifying the benefits and drawbacks of the available solutions.
PROPOSED SYSTEM
Key features, design considerations, and security measures are typically included
in the proposed solution for a Java-based password and note manager project.
This is a summary of a previous project solution that was suggested: Key
attributes: o Secure Data Storage: To guarantee the safe storage of notes and
passwords, use strong encryption algorithms. o User Authentication: For
improved user verification, include multi-factor authentication (MFA) and
consider incorporating biometric technologies. o Intuitive GUI: Utilize Java's GUI
features to create a graphical user interface that is easy to use and intuitive for
users to interact with. o Cross-Platform Compatibility: Take advantage of Java's
platform independence to make sure the application runs without a hitch on
various operating systems. o Cloud Integration: Offer cloud storage with robust
encryption for both in-transit and at-rest data
SOURCE CODE
import java.awt.*;

import

javax.swing.*;

import

java.awt.event.ActionEvent;

import

java.awt.event.ActionListener;

import java.util.ArrayList;

import

java.security.SecureRandom;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import

java.security.InvalidAlgorithmParameterException

; import java.security.InvalidKeyException;

import

java.security.NoSuchAlgorithmException;

import

java.security.spec.AlgorithmParameterSpec;

import

java.security.spec.InvalidKeySpecException;

import java.security.spec.KeySpec;

import

java.util.Base64;

import

javax.crypto.*;

import javax.crypto.spec.PBEKeySpec;

import

javax.crypto.spec.PBEParameterSpec;
// This class is used to create a loading

screen class SplashScreen {

JFrame frame;

JLabel image=new JLabel(new ImageIcon("key-

lock.png")); JLabel text=new JLabel("PASSWORD &

NOTES MANAGER"); JProgressBar progressBar=new

JProgressBar();

JLabel message=new JLabel();

SplashScreen()
{

createGUI();

addImage();

addText();

addProgressBar(

); runningPBar();

public void createGUI(){

frame=new JFrame(); // to create a frame

frame.getContentPane().setLayout(null); // to set the layout of the

frame frame.setUndecorated(true);

frame.setSize(400,400); // to set the size of the frame

frame.setLocationRelativeTo(null);

frame.getContentPane().setBackground(new Color(0XFF8787)); // to set the background color of

the frame frame.setVisible(true);

public void addImage(){

image.setSize(400,200); // to set the size of the

image frame.add(image);

public void addText()

text.setFont(new Font("MV Boli",Font.BOLD,20)); // to set the font of

the text text.setBounds(30,200,400,30);

text.setForeground(Color.black);

frame.add(text);

}
public void addProgressBar(){

progressBar.setBounds(100,280,200,30); // to set the size of the progress bar

progressBar.setBorderPainted(true);

progressBar.setStringPainted(true);

progressBar.setBackground(Color.black);

progressBar.setForeground(new

Color(0X38E54D)); progressBar.setValue(0);

frame.add(progressBar);

public void runningPBar(){

int i=0;//Creating an integer variable and initializing

it to 0 while( i<=100)

try{

Thread.sleep(40); //Pausing execution for 50

milliseconds progressBar.setValue(i); //Setting

value of Progress Bar i++;

if(i==100)

frame.dispose();

}catch(Exception e){

e.printStackTrace();

//Linear Probing Implementation

class HashtablePassword implements hashTableMap {

private final int useProbe; //0 = Linear Probing, 1 = Quadratic Probing


private Entry[] entries; //The array of

entries private final float loadFactor;

//The load factor

private int size, used; //used acquires space for NIL

private final Entry NIL = new Entry(null, null);

//Deleted entries

private static class

Entry{ Object key,

value; Entry(Object k,

Object v){

key = k; value = v;

public HashtablePassword(int capacity, float loadFactor, int

useProbe){ entries = new Entry[capacity];

this.loadFactor =

loadFactor; this.useProbe =

useProbe;

//Complementary

functions public int

hash(Object key){

return (key.hashCode() & 0x7FFFFFFF) % entries.length;

private int nextProbe(int h, int i){

return (h+i) % entries.length; //Linear Probing

}
private void rehash(){

Entry[] oldEntries = entries;

entries = new Entry[2*entries.length+1]; for (Entry entry : oldEntries) {


if (entry == NIL || entry == null)

continue; int h = hash(entry.key);

for (int x = 0; x < entries.length;

x++) { int j = nextProbe(h, x);

if (entries[j] ==

null) { entries[j]

= entry; break;

used = size;

@Override

public int add_Acc(Object Account, Object passwd)

{ if(used > (loadFactor*entries.length))rehash();

int h = hash(Account);

for (int i = 0; i <

entries.length; i++){ int j =

(h+i) % entries.length; Entry

entry = entries[j];

if(entry==null){

entries[j]= new Entry(Account, passwd);

++size;

+used;

return

h;

if(entry == NIL)continue;

if(entry.key.equals(Accou

nt)){
Object oldValue = entry.value;

entries[j].value = passwd;
return (int) oldValue;

return h;

@Override

public Object get_Acc(Object

Account) { int h =

hash(Account);

for(int i = 0; i < entries.length;

i++){ int j = nextProbe(h ,

i);

Entry entry =

entries[j]; if(entry

== null)break;

if(entry ==

NIL)continue;

if(entry.key.equals(Account)) return entry.value;

return null;

@Override

public Object remove_Acc(Object

Account) { int h = hash(Account);

for(int i = 0; i < entries.length;

i++){ int j = nextProbe(h,i);

Entry entry = entries[j];

if(entry == NIL)continue;

if(entry.key.equals(Accou

nt)){
Object Value =

entry.value; entries[j] =

NIL;

size--;
return Value;

return null;

class CryptoUtil

Cipher

ecipher;

Cipher

dcipher;

// 8-byte Salt

byte[] salt =

(byte) 0xA9, (byte) 0x9B, (byte) 0xC8, (byte)

0x32, (byte) 0x56, (byte) 0x35, (byte) 0xE3,

(byte) 0x03

};

// Iteration count

int iterationCount = 19;

public CryptoUtil() {

/**

* @param secretKey Key used to encrypt data

* @param plainText Text input to be encrypted

* @return Returns encrypted text


* @throws java.security.NoSuchAlgorithmException

* @throws java.security.spec.InvalidKeySpecException
* @throws javax.crypto.NoSuchPaddingException

* @throws java.security.InvalidKeyException

* @throws java.security.InvalidAlgorithmParameterException

* @throws java.io.UnsupportedEncodingException

* @throws javax.crypto.IllegalBlockSizeException

* @throws javax.crypto.BadPaddingException

*/

public String encrypt(String secretKey, String

plainText) throws

NoSuchAlgorithmException,

InvalidKeySpecException,

NoSuchPaddingException,

InvalidKeyException,

InvalidAlgorithmParameterException,

UnsupportedEncodingException,

IllegalBlockSizeException,

BadPaddingException {

//Key generation for enc and desc

KeySpec keySpec = new PBEKeySpec(secretKey.toCharArray(), salt, iterationCount);

SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(keySpec);

// Prepare the parameter to the ciphers

AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);

//Enc process

ecipher = Cipher.getInstance(key.getAlgorithm());

ecipher.init(Cipher.ENCRYPT_MODE, key,

paramSpec); String charSet = "UTF-8";

byte[] in =

plainText.getBytes(charSet); byte[]

out = ecipher.doFinal(in);

String encStr = new String(Base64.getEncoder().encode(out));


return encStr;

/**

* @param secretKey Key used to decrypt data

* @param encryptedText encrypted text input to decrypt

* @return Returns plain text after decryption

* @throws java.security.NoSuchAlgorithmException

* @throws java.security.spec.InvalidKeySpecException

* @throws javax.crypto.NoSuchPaddingException

* @throws java.security.InvalidKeyException

* @throws java.security.InvalidAlgorithmParameterException

* @throws java.io.UnsupportedEncodingException

* @throws javax.crypto.IllegalBlockSizeException

* @throws javax.crypto.BadPaddingException

*/

public String decrypt(String secretKey, String

encryptedText) throws NoSuchAlgorithmException,

InvalidKeySpecException,

NoSuchPaddingException,

InvalidKeyException,

InvalidAlgorithmParameterException,

UnsupportedEncodingException,

IllegalBlockSizeException,

BadPaddingException,

IOException {

//Key generation for enc and desc

KeySpec keySpec = new PBEKeySpec(secretKey.toCharArray(), salt, iterationCount);

SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(keySpec);

// Prepare the parameter to the ciphers


AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);

//Decryption process; same key will be used for

decr dcipher =

Cipher.getInstance(key.getAlgorithm());

dcipher.init(Cipher.DECRYPT_MODE, key,

paramSpec); byte[] enc =

Base64.getDecoder().decode(encryptedText);

byte[] utf8 = dcipher.doFinal(enc);

String charSet = "UTF-8";

String plainStr = new String(utf8,

charSet); return plainStr;

class PasswordGenerator {

private static final SecureRandom random = new

SecureRandom(); private static final String

caps="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static final

String small_caps="abcdefghijklmnopqrstuvwxyz"; private static

final String Numeric="1234567890";

private static final String special_char="~!@#$%^&*(_+{}|:_[?]>=<";

private static final String dic = caps + small_caps + Numeric + special_char;

public String generatePassword(int len)

{ StringBuilder password= new

StringBuilder(); for (int i = 0; i <len ; i+

+) {

int index = random.nextInt(dic.length());

password.append(dic.charAt(index));

return password.toString();
}
}

interface hashTableMap {

Object get_Acc(Object Account);

int add_Acc(Object Account, Object

passwd); Object remove_Acc(Object

Account);

class PasswordManager implements ActionListener {

//Store password class reference

HashtablePassword data = new HashtablePassword(15,0.5F,0);

// GUI variables declaration

JFrame frame;

JFrame frame2;

JLabel

background;

Container

conn1,conn2; JLabel

lAcc,lPass;

JTextArea encryptPasswdArea, genePassArea, searchPassArea;

JButton PassGeneBtn,PassEncryptBtn, PassStoreBtn, PassSearchBtn, AccAddBtn,

PassDeleteBtn; JTextField tAcc,tPass;

JButton

addNoteBtn; JLabel

addNoteLabel;

JTextArea tNote;

JButton addNote;
JFrame conn3;
ArrayList<String> notes = new ArrayList<>(); // to store the notes in an array list of string type

@Override

public void actionPerformed(ActionEvent e) { }

//Frame settings

public static void FrameGUI(JFrame

frame){ frame.setVisible(true);

frame.setLayout(null);

frame.setLocationRelativeTo(null);

//container settings

public static void ContainerGUI(Container conn){

conn.setVisible(true);

conn.setBackground(Color.getHSBColor(20.4f, 10.5f,

12.9f)); conn.setLayout(null);

// buttons settings

public void GUIButtonsSetting(JButton btn){

btn.setBackground(new Color(0XFB2576));

btn.setForeground(Color.WHITE);

btn.setBorder(BorderFactory.createLineBorder(Color.BLA

CK, 3)); btn.setFocusable(false);

Cursor crs = new

Cursor(Cursor.HAND_CURSOR);

btn.setCursor(crs);

Font fn = new Font("MV Boli", Font.BOLD, 15);


btn.setFont(fn);

//GUI of Store password

public void StoringGUI()

frame2 = new JFrame("Store your

passwords"); frame2.setBounds(1400, 300,

800, 500); frame2.setSize(400,400);

FrameGUI(frame2);

conn2 = frame2.getContentPane();

ContainerGUI(conn2);

Font fn = new Font("MV Boli", Font.BOLD, 20);

//Account textFiled and label

lAcc = new JLabel("ACCOUNT NAME");

lAcc.setBounds(90, 23, 380, 20);

lAcc.setFont(fn);

conn2.add(lAcc);

tAcc = new JTextField();

tAcc.setBounds(90,70,200,5

0); tAcc.setFont(fn);

tAcc.setBorder(BorderFactory.createLineBorder(Color.BLA

CK, 3)); tAcc.setForeground(Color.DARK_GRAY);

conn2.add(tAcc);

//Account password textField and label

lPass = new JLabel("ACCOUNT PASSWORD");

lPass.setBounds(90, 160, 380, 20);


lPass.setFont(fn);

conn2.add(lPass);

tPass = new JTextField();

tPass.setBounds(90,200,200,50);

tPass.setFont(fn);

tPass.setBorder(BorderFactory.createLineBorder(Color.BLA

CK, 3)); tPass.setForeground(Color.DARK_GRAY);

conn2.add(tPass);

AccAddBtn = new JButton("STORE");

AccAddBtn.setBounds(120, 290, 150, 50);

conn2.add(AccAddBtn);

GUIButtonsSetting(AccAddBtn);

//for password generator and encryption

public void textArea(String Pass,JTextArea TA){

TA.setText(Pass);

Font fn = new Font("MV Boli",

Font.BOLD, 20);

TA.setWrapStyleWord(true);

TA.setLineWrap(true);

TA.setCaretPosition(0);

TA.setEditable(false);

TA.setFont(fn);

//GUI of Password Manager

PasswordManager() {
frame = new JFrame("Password Manager");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLO

SE); frame.setSize(400,650);

frame.setResizable(false);

ImageIcon img = new

ImageIcon("background.png"); background =

new JLabel("",img,JLabel.CENTER);

background.setBounds(0,0,400,650);

background.setVisible(true);

frame.add(background);

FrameGUI(frame);

conn1 = frame.getContentPane();

ContainerGUI(conn1);

//Generator buttons settings

PassGeneBtn = new JButton("GENERATE

PASSWORD"); PassGeneBtn.setBounds(90, 20, 220,

40); conn1.add(PassGeneBtn);

GUIButtonsSetting(PassGeneBtn);

//generating password

PassGeneBtn.addActionListener(e ->

{ if(PassGeneBtn ==e.getSource())

try{

int len = Integer.parseInt(JOptionPane.showInputDialog("Enter the password

length")); if(len>4)

{
// password generator class reference

PasswordGenerator pass = new

PasswordGenerator(); String passwd =

pass.generatePassword(len); genePassArea = new

JTextArea(5,4); textArea(passwd,genePassArea);

JOptionPane.showMessageDialog(conn1,new JScrollPane(genePassArea),"Copy your


password",JOptionPane.INFORMATION_MESSAGE);

else JOptionPane.showMessageDialog (conn1,"Password length must be greater than


8!","Invalid Input Error",JOptionPane.WARNING_MESSAGE);

catch(Exception ex)
{JOptionPane.showMessageDialog(conn1,"Write
something","EXIT!",JOptionPane.ERROR_MESSAGE);}

);

// add a encryption button and action

JButton EncryptBtn = new JButton("ENCRYPT

Text"); EncryptBtn.setBounds(90, 90, 220, 40);

conn1.add(EncryptBtn);

GUIButtonsSetting(EncryptBtn);

EncryptBtn.addActionListener(e -> {

if(EncryptBtn ==e.getSource())

try{

String text = JOptionPane.showInputDialog("Enter the text to

encrypt"); String secretKey =

JOptionPane.showInputDialog("Enter the secret key");

if(text.length()>0 && secretKey.length()>0)


{

// password generator class

reference CryptoUtil pass1 = new

CryptoUtil();

String passwd = pass1.encrypt(secretKey, text); // encrypting

the text genePassArea = new JTextArea(5,4); // text area for

the encrypted text textArea(passwd,genePassArea); // setting

the text area

JOptionPane.showMessageDialog(conn1,new JScrollPane(genePassArea),"Copy your


password",JOptionPane.INFORMATION_MESSAGE); // showing the encrypted text

else JOptionPane.showMessageDialog (conn1,"Write something","Invalid Input


Error",JOptionPane.WARNING_MESSAGE);

catch(Exception ex)
{JOptionPane.showMessageDialog(conn1,"Write
something","EXIT!",JOptionPane.ERROR_MESSAGE);}

);

// add a decryption button and action

JButton DecryptBtn = new JButton("DECRYPT

Text"); DecryptBtn.setBounds(90, 160, 220,

40); conn1.add(DecryptBtn);

GUIButtonsSetting(DecryptBtn);

DecryptBtn.addActionListener(e -> {

if(DecryptBtn ==e.getSource())

try{

String text = JOptionPane.showInputDialog("Enter the text to decrypt"); // getting the

encrypted text String secretKey = JOptionPane.showInputDialog("Enter the secret key"); //


getting the secret key
if(text.length()>0 && secretKey.length()>0) // checking if the text and secret key is not empty

// password generator class reference

CryptoUtil pass1 = new CryptoUtil(); // creating a object of the CryptoUtil

class String passwd = pass1.decrypt(secretKey, text); // decrypting the

text genePassArea = new JTextArea(5,4); // text area for the decrypted

text textArea(passwd,genePassArea); // setting the text area

JOptionPane.showMessageDialog(conn1,new JScrollPane(genePassArea),"Decrypted
text",JOptionPane.INFORMATION_MESSAGE); // showing the decrypted text

else JOptionPane.showMessageDialog (conn1,"Password length must be greater than


8!","Invalid Input Error",JOptionPane.WARNING_MESSAGE);

catch(Exception ex)
{JOptionPane.showMessageDialog(conn1,"Write
something","EXIT!",JOptionPane.ERROR_MESSAGE);}

);

//storing password using hashtable

PassStoreBtn = new JButton("STORE PASSWORD");

PassStoreBtn.setBounds(90, 230, 220, 40);

conn1.add(PassStoreBtn);

GUIButtonsSetting(PassStoreBtn);

//Store password action

PassStoreBtn.addActionListener(e -> {

if(PassStoreBtn ==e.getSource())

try{
StoringGUI();

// action on the Store btn

AccAddBtn.addActionListener(e4 -> {

if (AccAddBtn == e4.getSource()) {

String account_name = tAcc.getText(); // getting the

account name String acc_pass = tPass.getText(); // getting

the password

if (account_name.isEmpty() && acc_pass.isEmpty()) {

JOptionPane.showMessageDialog(conn2,"unable to store your


password!","ERROR",JOptionPane.ERROR_MESSAGE);

else{

//calling put method of the hashtablePassword class

data.add_Acc(account_name,acc_pass); // adding the account name and password to

the hashtable JOptionPane.showMessageDialog(conn2, "Account added

Successfully !");

tAcc.setText(null);

tPass.setText(null);

);

catch(Exception ex) {JOptionPane.showMessageDialog(conn2,"Write


something","EXIT",JOptionPane.ERROR_MESSAGE);}

);

//searching password

PassSearchBtn = new JButton("SEARCH

PASSWORD"); GUIButtonsSetting(PassSearchBtn);

PassSearchBtn.setBounds(90, 300, 220, 40);


conn1.add(PassSearchBtn);

PassSearchBtn.addActionListener(

e ->{

if (PassSearchBtn

==e.getSource()){ try{

String acc_name = JOptionPane.showInputDialog("Enter your Account Name"); // getting the


account
name

if (!acc_name.isBlank()) { // checking if the account name is not empty

Object pass = data.get_Acc(acc_name.toLowerCase()); // getting the password of the

account name if(pass!=null) { // checking if the password is not null

searchPassArea = new JTextArea(4,5); // text area for the password

textArea(String.valueOf(pass), searchPassArea); // setting the text area

JOptionPane.showMessageDialog(conn1, new JScrollPane(searchPassArea), "Copy your


password", JOptionPane.INFORMATION_MESSAGE);

else JOptionPane.showMessageDialog(conn1, "Account not Found!");

catch (Exception ex){

JOptionPane.showMessageDialog(conn1,"Write something","EXIT",JOptionPane.ERROR_MESSAGE);

);

// deleting password

PassDeleteBtn = new JButton("DELETE PASSWORD");

GUIButtonsSetting(PassDeleteBtn);

PassDeleteBtn.setBounds(90, 370, 220, 40);

conn1.add(PassDeleteBtn);

PassDeleteBtn.addActionListener(e -> {

if (PassDeleteBtn == e.getSource()) {
try {

String acc_name = JOptionPane.showInputDialog("Enter the Account Name"); // getting the


account
name

if (!acc_name.isBlank()) {

data.remove_Acc(acc_name.toLowerCase()); // removing the account name and password from


the
hashtable

JOptionPane.showMessageDialog(conn1, "Delete successfully!"); // showing the message

else JOptionPane.showMessageDialog(conn1, "Account not found!", "INFO",


JOptionPane.INFORMATION_MESSAGE);

} catch (Exception ex) {

JOptionPane.showMessageDialog(conn1, "Write something", "EXIT",


JOptionPane.ERROR_MESSAGE);

);

addNoteBtn = new JButton("ADD NOTE");

GUIButtonsSetting(addNoteBtn);

addNoteBtn.setBounds(90, 440, 220, 40);

conn1.add(addNoteBtn);

addNoteBtn.addActionListener(e -> {

if (addNoteBtn ==

e.getSource()) { try {

NoteGUI();

// action on the add note btn

addNote.addActionListener(e4 -> {

if (addNote == e4.getSource()) {

String note = tNote.getText(); // getting the note


if (note.isEmpty()) {

JOptionPane.showMessageDialog(conn3, "unable to store your note!", "ERROR",


JOptionPane.ERROR_MESSAGE);

} else {

//calling put method of the hashtablePassword class

notes.add(note); // adding the note to the arraylist

JOptionPane.showMessageDialog(conn3, "Note added Successfully !");

conn3.setVisible(false);

tNote.setText(null);

});

} catch (Exception ex) {

JOptionPane.showMessageDialog(conn3, "Write something", "EXIT",


JOptionPane.ERROR_MESSAGE);

);

//get all notes

JButton getNoteBtn = new JButton("GET

NOTE"); GUIButtonsSetting(getNoteBtn);

getNoteBtn.setBounds(90, 510, 220, 40);

conn1.add(getNoteBtn);

getNoteBtn.addActionListener(e -> {

if (getNoteBtn ==

e.getSource()) { try {

String allNotes = notes.get(notes.size() - 1); // getting the last

note added if (allNotes.isEmpty()) { // checking if the note is

empty or not
JOptionPane.showMessageDialog(conn1, "No note found!", "INFO",
JOptionPane.INFORMATION_MESSAGE); // showing the message

} else {

searchPassArea = new JTextArea(4, 5); // text area for the

note textArea(allNotes, searchPassArea); // setting the text

area

JOptionPane.showMessageDialog(conn1, new JScrollPane(searchPassArea), "Get your


notes", JOptionPane.INFORMATION_MESSAGE); // showing the message

} catch (Exception ex) {

JOptionPane.showMessageDialog(conn1, "Add a note before trying to retrive", "EXIT",


JOptionPane.ERROR_MESSAGE);

);

// method for setting the buttons and GUI for adding

notes private void NoteGUI() {

conn3 = new JFrame("Add Note");

conn3.setSize(500, 500);

conn3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

conn3.setLocationRelativeTo(null);

conn3.setLayout(null);

conn3.setVisible(true);

conn3.setResizable(false);

//add note label

addNoteLabel = new JLabel("Add Note");


addNoteLabel.setBounds(200, 20, 100, 30);

conn3.add(addNoteLabel);

//add note text area

tNote = new JTextArea(10, 10);

tNote.setBounds(100, 60, 300, 300);

conn3.add(tNote);

//add note button

addNote = new JButton("ADD NOTE");

GUIButtonsSetting(addNote);

addNote.setBounds(140, 380, 220, 30);

conn3.add(addNote);

// main method to run the

application public static void

main(String[] args) {

//loading screen

class new

SplashScreen(); try

new PasswordManager();

}catch (Exception ex) { ex.printStackTrace(); }

}
OUTPUT
CONCLUSION
These days, password managers are the most underappreciated software.
Though they are more important than ever, people do not realize how much they
need them. The number of hacking attempts is increasing daily and will continue
to rise in the future if nothing is done. Businesses are making every effort to
safeguard their servers against these intrusions, but users remain susceptible
when they use easy-to-crack passwords. A large number of recent hacking
attempts have come from usergenerated content. The only way to help these
users remember complex passwords is to use password managers. We want to
raise awareness of this crucial software and make the code available as open-
source so that personal security continues to advance just a little bit in the future.
REFERANCE

1. https://copyassignment.com/password-and-notesmanager-in-java/

2. https://www.w3counter.com/globalstats.php

3. https://www.tutorialspoint.com/html5/html5_index eddb.htm

4. https://www.html5rocks.com/en/tutorials/file/filesy stem/

5. http://canadiancloudbackup.com/safe-safe-aes-256- encryption-data/

You might also like