Skip to main content

A strong password generator program with source code

In my previous post https://steemit.com/programming/@royalmacro/a-free-open-source-data-encryption-program-for-steemit-users I share a data encrypton tool with source code, now, today here I share another program, a strong password generator with source code.
This program will generate strong, hard-to-guess passwords. I’ll do it by hashing together “domain name”, “login/user id” & “a secure master key”.
If you use the same secure master key for every password generations then you do not need to write down or, memorize your generated passwords. When you need your password then repeat the same procedure to re-generate it. If your “domain name”, “login/user id” & “a secure master key” are not different then you will generate the same password.
If you use only one secure master key then you have to only memorize your master key, not the passwords.
Lets try it !
Step by Step Development :
Open a new project in Visual Basic 8. Select “Standard EXE”.


Create 5 text boxes & one command button. Text1 textbox, Text2 textbox, Text3 textbox, Text4 textbox, Text5 textbox & Command1 commandbutton.
enter image description here
Add 5 Labels with captions “domain name”, “login/user id”, “secure master key”, “strong password” & “normal password”. And change the caption of the Command1 commandbutton to “Generate”. Add the passwordchar “*” to the Text3 textbox “password char” properties.
enter image description here
Add a module “Module 1” to the project
enter image description here
Add this following codes to the module “Module 1” :
enter image description here
Option Explicit

Public Function CryptRC4(sText As String, sKey As String) As String
Dim baS(0 To 255) As Byte
Dim baK(0 To 255) As Byte
Dim bytSwap     As Byte
Dim lI          As Long
Dim lJ          As Long
Dim lIdx        As Long

For lIdx = 0 To 255
    baS(lIdx) = lIdx
    baK(lIdx) = Asc(Mid$(sKey, 1 + (lIdx Mod Len(sKey)), 1))
Next
For lI = 0 To 255
    lJ = (lJ + baS(lI) + baK(lI)) Mod 256
    bytSwap = baS(lI)
    baS(lI) = baS(lJ)
    baS(lJ) = bytSwap
Next
lI = 0
lJ = 0
For lIdx = 1 To Len(sText)
    lI = (lI + 1) Mod 256
    lJ = (lJ + baS(lI)) Mod 256
    bytSwap = baS(lI)
    baS(lI) = baS(lJ)
    baS(lJ) = bytSwap
    CryptRC4 = CryptRC4 & Chr$((pvCryptXor(baS((CLng(baS(lI)) + baS(lJ)) Mod 256), Asc(Mid$(sText, lIdx, 1)))))
Next
End Function

Public Function pvCryptXor(ByVal lI As Long, ByVal lJ As Long) As Long
If lI = lJ Then
    pvCryptXor = lJ
Else
    pvCryptXor = lI Xor lJ
End If
End Function

Public Function ToHexDump(sText As String) As String
Dim lIdx            As Long

For lIdx = 1 To Len(sText)
    ToHexDump = ToHexDump & Right$("0" & Hex(Asc(Mid(sText, lIdx, 1))), 2)
Next
End Function

Public Function FromHexDump(sText As String) As String
Dim lIdx            As Long

For lIdx = 1 To Len(sText) Step 2
    FromHexDump = FromHexDump & Chr$(CLng("&H" & Mid(sText, lIdx, 2)))
Next
End Function
Input this following code to Form1 :
enter image description here
Private Sub Command1_Click()
Dim KEY As String
Dim Password As String
Dim str1, str2, str3, str4, laststr As String

If Me.Text1.Text = "" Then
MsgBox "Error - You have entered no domain!", vbCritical, "Error"
ElseIf Me.Text2.Text = "" Then
MsgBox "Error - You have entered no Login ID!", vbCritical, "Error"
ElseIf Me.Text3.Text = "" Then
MsgBox "Error - You have entered no master key!", vbCritical, "Error"
ElseIf Len(Me.Text3.Text) < 3 Then
MsgBox "Error - You have entered too short Master Key. Please, enter at least 3 characters!", vbCritical, "Error"
Else

KEY = LCase(Me.Text1.Text) + LCase(Me.Text2.Text)

Password = ToHexDump(CryptRC4(Me.Text3.Text, KEY))
If Len(Password) > 18 Then
Password = Mid$(Password, 1, 18)
End If

str1 = Mid$(Password, 1, 1)
str2 = Mid$(Password, 2, 1)
str3 = Mid$(Password, 3, 1)
str4 = Mid$(Password, 4, 1)
laststr = Mid$(Password, 5, Len(Password) - 4)

If Len(Me.Text3.Text) = 3 Then

Me.Text4.Text = str1 + "S" + str2 + "^" + str3 + "7" + str4 + "l" + laststr
Me.Text5.Text = str1 + "t" + str2 + "3" + str3 + "I" + str4 + "0" + laststr

ElseIf Len(Me.Text3.Text) = 4 Then

Me.Text4.Text = str1 + "R" + str2 + "$" + str3 + "8" + str4 + "j" + laststr
Me.Text5.Text = str1 + "k" + str2 + "7" + str3 + "X" + str4 + "5" + laststr

ElseIf Len(Me.Text3.Text) = 5 Then

Me.Text4.Text = str1 + "E" + str2 + "%" + str3 + "6" + str4 + "g" + laststr
Me.Text5.Text = str1 + "d" + str2 + "2" + str3 + "U" + str4 + "4" + laststr

ElseIf Len(Me.Text3.Text) = 6 Then

Me.Text4.Text = str1 + "H" + str2 + "!" + str3 + "5" + str4 + "m" + laststr
Me.Text5.Text = str1 + "v" + str2 + "1" + str3 + "F" + str4 + "0" + laststr

ElseIf Len(Me.Text3.Text) = 7 Then

Me.Text4.Text = str1 + "J" + str2 + "~" + str3 + "6" + str4 + "c" + laststr
Me.Text5.Text = str1 + "w" + str2 + "7" + str3 + "Q" + str4 + "9" + laststr

ElseIf Len(Me.Text3.Text) = 8 Then

Me.Text4.Text = str1 + "Z" + str2 + "#" + str3 + "8" + str4 + "h" + laststr
Me.Text5.Text = str1 + "o" + str2 + "6" + str3 + "T" + str4 + "4" + laststr

ElseIf Len(Me.Text3.Text) = 9 Then

Me.Text4.Text = str1 + "Y" + str2 + "@" + str3 + "5" + str4 + "d" + laststr
Me.Text5.Text = str1 + "p" + str2 + "4" + str3 + "W" + str4 + "7" + laststr

ElseIf Len(Me.Text3.Text) = 10 Then

Me.Text4.Text = str1 + "Z" + str2 + "&" + str3 + "8" + str4 + "n" + laststr
Me.Text5.Text = str1 + "y" + str2 + "2" + str3 + "G" + str4 + "5" + laststr

ElseIf Len(Me.Text3.Text) = 11 Then

Me.Text4.Text = str1 + "B" + str2 + "*" + str3 + "3" + str4 + "j" + laststr
Me.Text5.Text = str1 + "f" + str2 + "0" + str3 + "V" + str4 + "7" + laststr

ElseIf Len(Me.Text3.Text) = 12 Then

Me.Text4.Text = str1 + "Q" + str2 + "(" + str3 + "6" + str4 + "e" + laststr
Me.Text5.Text = str1 + "r" + str2 + "5" + str3 + "W" + str4 + "9" + laststr

ElseIf Len(Me.Text3.Text) = 13 Then

Me.Text4.Text = str1 + "U" + str2 + ")" + str3 + "7" + str4 + "t" + laststr
Me.Text5.Text = str1 + "m" + str2 + "4" + str3 + "K" + str4 + "7" + laststr

ElseIf Len(Me.Text3.Text) = 14 Then

Me.Text4.Text = str1 + "O" + str2 + "-" + str3 + "2" + str4 + "l" + laststr
Me.Text5.Text = str1 + "w" + str2 + "6" + str3 + "I" + str4 + "4" + laststr

ElseIf Len(Me.Text3.Text) = 15 Then

Me.Text4.Text = str1 + "X" + str2 + "=" + str3 + "7" + str4 + "j" + laststr
Me.Text5.Text = str1 + "d" + str2 + "5" + str3 + "V" + str4 + "6" + laststr

ElseIf Len(Me.Text3.Text) = 16 Then

Me.Text4.Text = str1 + "C" + str2 + "+" + str3 + "6" + str4 + "n" + laststr
Me.Text5.Text = str1 + "m" + str2 + "9" + str3 + "J" + str4 + "8" + laststr

ElseIf Len(Me.Text3.Text) > 16 Then

Me.Text4.Text = str1 + "T" + str2 + "+" + str3 + "6" + str4 + "y" + laststr
Me.Text5.Text = str1 + "l" + str2 + "9" + str3 + "X" + str4 + "8" + laststr


End If
End If
End Sub
Make the exe file :
enter image description here
Completed ! Now run the exe file :
enter image description here
In this tutorial I use “gmail.com” as domain, “samplegmailaccount@gmail.com” as login/user id & “12345678” as my secure master key. And after pressing the “Generate” button I got two types of passwords – strong (0Z5#388h834926252CB6) & normal (0o563T84834926252CB6). Look strong type passwords has special characters & normal has not. Some websites don’t support any special characters as password. So, you can normal password there. If you change any fields of domain, login/user id & secure master key then this program will generate quite different password.
If you use only one secure master key to generate your passwords then you have to only memorize your master key, not the passwords. And you will generate different types of strong passwords for different websites or Login/User IDs.
Thank you :D

Tags : Open Source Project, Programming, Security, Software, Steemit, Visual Basic, 

This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 



$3 Donation [Fixed]

$Any Amount





Back to Top

Popular Posts (Last 7 Days)

“Tears on Cheek of Africa” My Original Abstract Art

My Original Abstract Art “Tears on Cheek of Africa”

The love with lands surrounded by
the Mediterranean sea to north,
Sinai Peninsula keeps a house with whom?
Suez and red having room. Forest and her ancient folk
always in our feelings and talk,
All the mankind having so curious
You,more I think mysterious. Beauty of her smile peeking, a truth
I know the truth, the truth.
The photographer committing suicide
never conceding the painful sight. A monster throwing away foods
In the water, children of you
Crying crying for a grain.
The moribund acting his last sequence
Why? a vulture waiting, a question. I love you, consider mother of lions
Smile revealing a secret, oh Africa!
enjoy :) Tags : Abstract, Art, Drawing, Painting, Poems, Poetry,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


"The Old Man"- My Original Abstract Art

My Original Abstract Art "The Old Man"



 enjoy :) 
Tags : Abstract, Art, Drawing, Painting,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


What I Learnt Today : Tourists can buy live animals as keychains and lucky charms in China

image credit An amazing & also shocking information is just waiting for you. You must be astonished when you hear the truth about the components used to make some sort of keychains in China. In China some sort of keychains are made with live animals. These special keychains are made for tourists.
image credit Which animals are used ? Generally small fishes or turtles are placed in a small sealed plastic keychain container.
image credit How long these animals live ? The sellers claim that they keep some nutritious supplements inside the plastic containers. This nutritious supplements keep the animals alive for several weeks or months. This is 100% false. Only food makes no animal live for a long. Without fresh oxygen, water, air no animals can survive for a long. Actually, no access to air and limited space kills these animals quite quickly.
image credit Unfortunately, buying or selling these poor creatures as keychains is not banned in China. These activities are legal. I think it sh…

dragon painting - My Original Abstract Art

My Original Abstract Art "dragon painting"



enjoy :)
Tags : Abstract, Art, Design, Drawing, Painting,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


My Original Abstract Art - “sunless flower garden”

My Original Abstract Art “Sunless Flower Garden”


enjoy :)
Tags : Abstract, Art, Drawing, Painting,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


“The Holi - festival of color, festival of love” My Original Abstract Art

My Original Abstract Art “The Holi - festival of color, festival of love”






Tags : Abstract, Art, Drawing, Painting,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


Newslink : Bitcoin Price Technical Analysis for 12/13/2016 – Here Come the Bulls!

Bitcoin price broke out of its triangle consolidation pattern, indicating that bulls are ready to take control once more. image credit  A rate hike has already been fully priced-in so this shouldn't come as a surprise to dollar traders and bitcoin price, but the dot plot forecast of interest rates and the economic projections should garner more attention. Upgraded growth and inflation ... Read the full Technical Analysis On newsbtc.com Tags : Bitcoin, Cryptocurrency, Economics, Money, Crypto Markets,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


Top 10 famous Abstract Art of all the time

Top 10 famous Abstract Art of all the time I love abstract arts. I believe that abstract art is not what you see , it’s what you think. Abstract art is the freedom of using colors, is the freedom of representing your thoughts in colors. Today, here I share top 10 famous abstract arts of all the time. Hope you’ll enjoy them. Number 10 : The Son Of Man by Rene Magritte
image source & credit : LINK Artist: René Magritte
Media: Oil paint
Created: 1964
Period: Surrealism
Subject: René Magritte Number 09 : Garçon à la pipe by Pablo Picasso
image source & credit : LINK Artist: Pablo Picasso
Dimensions: 1 m x 81 cm
Created: 1905
Media: Oil paint
Period: Picasso’s Rose Period
Support: Canvas Number 08 : The Night Watch by Rembrandt
image source & credit : LINK Artist: Rembrandt
Dimensions: 3.63 m x 4.37 m
Created: 1642
Locations: Amsterdam Museum, Rijksmuseum
Periods: Baroque, Dutch Golden Age
Genres: Portrait, History painting Number 07 : Girl with a pearl earring by Johannes Ver…

Here I share my original abstract art “The days of Falling leaves”

Here I share my original abstract art  "The days of Falling leaves”
 enjoy :) Tags : Abstract, Art, Drawing, Painting,  This Post Was Published On My Steemit Blog. Please, navigate to steemit and cast a free upvote to help me if you like my post. First Time heard about Steemit ? Click Here To Know Everything About Steemit 

$3 Donation [Fixed]
Donate $Any Amount


Buy/Sell Your Steem Dollars ($SBD) via Perfect Money, Skrill & Neteller [Try to build up my dream project]

I was very much inspired by reading the post made by Charlie Shrem -https://steemit.com/steem/@charlieshrem/the-price-of-steem-where-do-we-go-from-here-reflections-by-charlie-shrem So, I think to build up a project where I buy/sell Steem Dollars ($SBD) via Fiat currencies such as Perfect Money USD/EUR, Skrill USD/EUR/GBP, Neteller USD/EUR/GBP, Payza USD/EUR/GBP, Payeer EUR/USD/GBP & Advcash USD/EUR/GBP. Where to buy/sell ? I choose peerhub for my project. You may signup here with facebook or,  email address. I've just listed some sell orders for testing purpose only : $5 Perfectmoney USD for $6.25 SBD https://www.peerhub.com/items/7025 $5 Skrill USD for $6.25 SBD https://www.peerhub.com/items/7026 $5 Neteller USD for $6.25 SBD https://www.peerhub.com/items/7027
What's the fee ? I've yet not fixed the fee rates. However, the testing fee is now 5% plus $1 USD (minimum). How can you trust me ? COLLATERAL OR ESCROW ?  It's the big question & most important also. I can r…