கடவுச்சொல் பாதுகாப்பு பூட்டு சுற்று 4 × 4 கீபேட் மற்றும் அர்டுயினோவைப் பயன்படுத்துகிறது

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த இடுகையில் நாம் 6 இலக்க கடவுச்சொல்லால் அணுகக்கூடிய கடவுச்சொல் பாதுகாப்பு பூட்டு சுற்று ஒன்றை உருவாக்க உள்ளோம். இன்னும் துல்லியமாகச் சொல்வதென்றால் அது ஆல்பா எண் கடவுச்சொல்.

இந்த திட்டத்திற்கான வன்பொருள்

0 முதல் 9 தசம மதிப்புகள், இரண்டு சிறப்பு எழுத்து ‘#’ மற்றும் ‘*’ மற்றும் ஏ முதல் டி எழுத்துக்களைக் கொண்ட 4x4 விசைப்பலகையைப் பயன்படுத்தப் போகிறோம். இந்த எழுத்துக்களின் கலவையை கடவுச்சொல்லாகப் பயன்படுத்தலாம்.



Arduino என்பது அமைப்பின் மூளை, சரியான கடவுச்சொல் கட்டளையிடப்படும்போது, ​​செயல்படுத்துவதற்கும் செயலிழக்கச் செய்வதற்கும் Arduino உடன் ஒரு ரிலே இணைக்கப்பட்டுள்ளது. பூட்டு அமைப்பின் நிலையைக் குறிக்க இரண்டு காட்டி எல்.ஈ.டி இங்கே பயன்படுத்தப்படுகிறது.

4x4 விசைப்பலகையை நீங்கள் அறிந்திருக்கவில்லை என்றால், தயவுசெய்து எனது முந்தைய கட்டுரையைப் பார்க்கவும், இது விரிவாக விவாதிக்கப்பட்டது 4x4 மேட்ரிக்ஸ் விசைப்பலகையின் அடிப்படைகள்



முன்மொழியப்பட்ட திட்டத்தில் மிகச்சிறிய வன்பொருள் வடிவமைப்பு உள்ளது. இது ஒரு விசைப்பலகை, ரிலே, அர்டுயினோ மற்றும் இரண்டு எல்.ஈ.டிகளைக் கொண்டுள்ளது, அர்டுயினோவில் உள்ள ஒரு நபரும் கூட அதை எளிதாக நிறைவேற்ற முடியும்.

இந்த திட்டத்தில் சற்று கடினமான ஒரே பகுதி குறியீட்டு முறைதான், இந்த திட்டத்தில் குறியீடு கொடுக்கப்பட்டுள்ளது என்று கவலைப்பட தேவையில்லை. நிரல் முட்டாள்தனமான ஆதாரம் மற்றும் எந்த கடத்தல்காரரும் கணினியை ஹேக் செய்ய முடியாத வகையில் எழுதப்பட வேண்டும்.

ஆனால், நீங்கள் வன்பொருளை அம்பலப்படுத்தினால் கவனமாக இருங்கள் அல்லது இந்த திட்டத்தின் வன்பொருள் எளிதில் அணுகக்கூடியதாக இருந்தால், ரிலேவை எளிதாக ஹேக் செய்யலாம். எனவே இந்த திட்டத்தை நன்கு பாதுகாக்கப்பட்ட சேஸில் வைக்கவும்.

எப்படி இது செயல்படுகிறது

குறிப்பு: தற்போதைய கட்டுப்படுத்தும் மின்தடை 4.7 கே டிரான்சிஸ்டரின் அடித்தளத்துடன் இணைக்கப்பட வேண்டும், இது வரைபடத்தில் காட்டப்படவில்லை.

இந்த Arduino கடவுச்சொல் பாதுகாப்பு பூட்டு சுற்று எவ்வாறு செயல்படுகிறது என்பதை இப்போது பார்ப்போம், தயவுசெய்து சுற்று இயக்க, கீழே கொடுக்கப்பட்டுள்ள வழிமுறையை கவனமாகப் படியுங்கள்.

சுற்று வரைபடம்

4x4 விசைப்பலகையைப் பயன்படுத்தி Arduino கடவுச்சொல் பாதுகாப்பு பூட்டு சுற்று

விசைப்பலகை மற்றும் அர்டுயினோவை எவ்வாறு இடைமுகப்படுத்துவது என்பதற்கான இரண்டு எடுத்துக்காட்டுகள் இங்கே:

Arduino கடவுச்சொல் பாதுகாப்பு பூட்டு சோதனை முடிவுகள்

The சர்க்யூட் இயங்கும் போது, ​​அது கடவுச்சொல்லைக் கேட்கிறது, நீங்கள் சீரியல் மானிட்டரில் பார்க்கலாம் (சீரியல் மானிட்டர் கட்டாயமில்லை, ஆனால் சோதனை நோக்கத்திற்காகப் பயன்படுத்தலாம்).

The தொகுப்பில் நீங்கள் உள்ளிட்ட கடவுச்சொல்லை நிரலில் உள்ளிடவும்.

The நீங்கள் விசைகளை அழுத்தும்போது, ​​பச்சை எல்.ஈ.டி ஒரு விநாடியின் பத்தில் ஒரு பங்கை ஒளிரச் செய்கிறது, இது சில விசைகள் பயனரால் அழுத்தப்படுவதைக் குறிக்கிறது.

6 நீங்கள் 6 இலக்க கடவுச்சொல்லை உள்ளிட்டதும், விசைப்பலகையில் ‘D’ ஐ அழுத்தவும், அது ‘Enter’ ஆக செயல்படுகிறது. உங்கள் கடவுச்சொல் சரியாக இருந்தால், ரிலே செயல்படுத்தப்படும், பச்சை எல்.ஈ.

Lay ரிலேவை செயலிழக்க, விசைப்பலகையில் ‘சி’ அழுத்தவும். இது முடிந்ததும், பச்சை எல்.ஈ.டி அணைக்கப்பட்டு ரிலே செயலிழக்கப்படும். வேறு எந்த விசையும் ரிலேவை செயலிழக்க செய்ய முடியாது.

By பயனர் உள்ளிட்ட கடவுச்சொல் தவறானது எனில், சிவப்பு எல்.ஈ.டி விளக்குகள் எரியும், அடுத்த முயற்சியில் நுழைய பயனர் 30 வினாடிகள் காத்திருக்க வேண்டும். 30 வினாடி முடிந்ததும், சிவப்பு எல்.ஈ.டி முடக்கப்படும், பயனருக்கு தகவல் அளிக்கிறது, பயனரிடமிருந்து உள்ளீட்டைப் பெற கணினி தயாராக உள்ளது.

Activ வெற்றிகரமாக செயல்படுத்தப்பட்ட பிறகு ரிலே செயலிழக்கும்போது, ​​ரிலேவை மீண்டும் செயல்படுத்த, பயனர் மீண்டும் கடவுச்சொல்லை உள்ளிட்டு ‘டி’ ஐ அழுத்த வேண்டும்.

இங்கே ஒரு சிறப்பு வழக்கு:

Password சரியான கடவுச்சொல் உள்ளிடப்பட்டதும், ரிலே செயல்படுத்தப்பட்டு வெற்றிகரமாக செயலிழக்கச் செய்யப்பட்ட பின்னர், பயனர் ஏதேனும் தவறான விசை அழுத்தத்தை (முழு கடவுச்சொல்லையும் அல்ல) தாக்கும்போது, ​​நிரல் தவறான கடவுச்சொல்லாக அங்கீகரிக்கிறது மற்றும் பயனர் இன்னும் 30 விநாடி காத்திருக்க வேண்டும். இது ஒரு கடத்தல்காரராக இருந்தால், அது கடத்தல்காரன் செய்த முயற்சிகளின் எண்ணிக்கையை தாமதப்படுத்தும்.

Key முதல் முயற்சியில் சரியான விசை அழுத்தும் போது, ​​அது அடுத்த விசையை உள்ளிட அனுமதிக்கிறது. இது முதல் விசை அழுத்தத்திற்கு மட்டுமே, அடுத்தடுத்த அனைத்து விசை அழுத்தங்களுக்கும் அல்ல.

Desired கடத்தல்காரர் மேற்கொண்ட முயற்சிகளின் எண்ணிக்கையை தாமதப்படுத்துவதே மேலே விளக்கப்பட்ட கருத்தின் குறிக்கோள்.

நிரல் குறியீடு:

//---------------------------------Program Developed by R.Girish--------------------------//
#include
const byte ROWS = 4
const byte COLS = 4
char pass[] = '123ABC' // 6 digit password only (no less or no more)
int OP=10
int green=12
int red=11
char key1
char key2
char key3
char key4
char key5
char key6
char dumpkey
char keyOK
char ok[]='D'
char offkey
char off[]='C'
int z
char keys[ROWS][COLS] =
{
{'D','#','0','*'},
{'C','9','8','7'},
{'B','6','5','4'},
{'A','3','2','1'}
}
byte rowPins[ROWS] = {6,7,8,9} //connect to the row pinouts of the keypad
byte colPins[COLS] = {2,3,4,5} //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS )
void setup()
{
Serial.begin(9600)
pinMode(OP,OUTPUT)
pinMode(green,OUTPUT)
pinMode(red,OUTPUT)
digitalWrite(OP,LOW)
}
void loop()
{
top:
Serial.println('')
Serial.println('[Press D = Enter]')
Serial.print('Enter the password: ')
key1=keypad.waitForKey()
if(key1 == pass[0])
{
digitalWrite(green,HIGH)
delay(100)
digitalWrite(green,LOW)
{
z=1
Serial.print('*')
goto A

}
}
வேறு
{
கோட்டோ டம்ப்
}
TO:
key2 = keypad.nightForKey ()
if (key2 == pass [1])
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
{
z = 2
சீரியல்.பிரண்ட் ('*')
கோட்டோ பி
}
}
வேறு
{
கோட்டோ டம்ப்
}
பி:
key3 = keypad.nightForKey ()
if (key3 == pass [2])
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
{
z = 3
சீரியல்.பிரண்ட் ('*')
கோட்டோ சி
}
}
வேறு
{
கோட்டோ டம்ப்
}
சி:
key4 = keypad.nightForKey ()
if (key4 == pass [3])
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
{
z = 4
சீரியல்.பிரண்ட் ('*')
கோட்டோ டி
}
}
வேறு
{
கோட்டோ டம்ப்
}
டி:
key5 = keypad.nightForKey ()
if (key5 == pass [4])
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
{
z = 5
சீரியல்.பிரண்ட் ('*')
கோட்டோ இ
}
}
வேறு
{
கோட்டோ டம்ப்
}
இருக்கிறது:
key6 = keypad.nightForKey ()
if (key6 == pass [5])
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
{
z = 6
சீரியல்.பிரண்ட் ('*')
கிடைத்தது
}
}
வேறு
{
கோட்டோ டம்ப்
}
சரி:
keyOK = keypad.nightForKey ()
if (keyOK == ok [0])
{
டிஜிட்டல்ரைட் (OP, HIGH)
டிஜிட்டல்ரைட் (பச்சை, உயர்)
Serial.println ('')
Serial.println ('ரிலே செயல்படுத்தப்பட்டது, Deactivate.n' க்கு 'C' ஐ அழுத்தவும்)
}
வேறு
{
Serial.println ('')
Serial.println ('நுழைய' D 'ஐ அழுத்தவும்')
கிடைத்தது
}
முடக்கு:
offkey = keypad.nightForKey ()
if (offkey == off [0])
{
டிஜிட்டல்ரைட் (OP, LOW)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
Serial.println ('ரிலே Deactivated.n')
கோட்டோ டாப்
}
வேறு
{
Serial.println ('செயலிழக்கச் செய்ய' C 'ஐ அழுத்தவும்)
கிடைத்தது
}
டம்ப்:
if (z == 0)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
if (z == 1)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
if (z == 2)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
if (z == 3)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
if (z == 4)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
if (z == 5)
{
டிஜிட்டல்ரைட் (பச்சை, உயர்)
தாமதம் (100)
டிஜிட்டல்ரைட் (பச்சை, குறைந்த)
சீரியல்.பிரண்ட் ('*')
டம்ப்கி = கீபேட்.வைட்ஃபோர்கே ()
சீரியல்.பிரண்ட் ('*')
கோட்டோ பிழை
}
பிழை:
Serial.println ('')
சீரியல்.பிரண்ட் ('தவறான கடவுச்சொல், 30 விநாடிகள் காத்திருங்கள்.')
டிஜிட்டல்ரைட் (சிவப்பு, உயர்)
தாமதம் (10000)
தாமதம் (10000)
தாமதம் (10000)
டிஜிட்டல்ரைட் (சிவப்பு, குறைந்த)
கோட்டோ டாப்
}
// --------------------------------- ஆர்.கிரீஷ் உருவாக்கிய திட்டம் --------- ----------------- //

குறிப்பு: கடவுச்சொல்லை அமைக்க: char pass [] = '123ABC' // 6 இலக்க கடவுச்சொல் மட்டும் (குறைவாகவோ அல்லது அதிகமாகவோ இல்லை)
மேற்கோள் குறிக்குள் உங்கள் சொந்த கடவுச்சொல்லுடன் “123ABC” ஐ மாற்றவும்.

நிரலில் அமைக்கப்பட்ட கடவுச்சொல் 6 இலக்கங்கள் மட்டுமே என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், குறைவாகவோ அல்லது அதிகமாகவோ இல்லை, ஆனால் சரியாக 6 இலக்கங்கள். இல்லையெனில் நிரல் சரியாக செயல்படாது.

விளக்கப்பட்ட கடவுச்சொல் பாதுகாப்பு பூட்டு சுற்று குறித்து உங்களுக்கு ஏதேனும் சந்தேகம் இருந்தால், தயவுசெய்து அவற்றை உங்கள் கருத்துகள் மூலம் இடுகையிடவும்




முந்தைய: சன்ரைஸ் சன்செட் சிமுலேட்டர் எல்இடி சர்க்யூட் அடுத்து: புளூடூத் மோட்டார் கட்டுப்பாட்டு சுற்று