Სარჩევი:

Cryptap: რიტმზე დაფუძნებული კარის საკეტი: 5 ნაბიჯი
Cryptap: რიტმზე დაფუძნებული კარის საკეტი: 5 ნაბიჯი

ვიდეო: Cryptap: რიტმზე დაფუძნებული კარის საკეტი: 5 ნაბიჯი

ვიდეო: Cryptap: რიტმზე დაფუძნებული კარის საკეტი: 5 ნაბიჯი
ვიდეო: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, ივლისი
Anonim
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი
კრიპტაპი: რიტმზე დაფუძნებული კარის საკეტი

შთაგონებული კარის განბლოკვის რამდენიმე მექანიზმით, რაც მე ვნახე hackaday.com– ზე, მე გადავწყვიტე საკუთარი თავის შექმნა. ამ ერთს აქვს ორ ღილაკიანი ინტერფეისი; ერთი პაროლის წარდგენის დასაწყებად და დასასრულებლად, ხოლო ერთი ფაქტობრივად შეხების რიტმში, რომელიც არის თქვენი პაროლი. ასევე არის სტატუსის შუქი. მე შევძელი ეს მართლაც იაფად ავაშენო იმ ნაწილების გამოყენებით, რომლებიც ბოლო რამდენიმე თვის განმავლობაში შევიწმინდე. ერთადერთი, რისთვისაც უნდა გადავიხადო, იყო თავად მიკროკონტროლერი, რომელიც 21 დოლარი იყო (https://www.pjrc.com/teensy/) და სურათების ჩამოსაკიდი მავთულები, რომლებიც ადრე მქონდა.

ძალიან სახალისოა ვარსკვლავური ომების თემის შეხება ან რაღაც შესვლა ჩემს ოთახში. ახლა, მე არ უნდა ვიდარდო, რომ ისევ გამოვიკეტო ჩემი ოთახიდან! გარდა ამისა, ის თავს კარგად და ჯიუტად გრძნობს.

ნაბიჯი 1: ნაწილები და ინსტრუმენტები

ნაწილები და ინსტრუმენტები
ნაწილები და ინსტრუმენტები
ნაწილები და ინსტრუმენტები
ნაწილები და ინსტრუმენტები

მე ავირჩიე Teensy, რადგან ეს არის ჩემი პირველი მიკროკონტროლერი და მე ჯერ არ მყავს პროგრამისტი. Teensy მოითხოვს მხოლოდ A-miniB USB კაბელს და უფასო პროგრამულ უზრუნველყოფას, რომელიც თავსებადია Mac/Windows/Linux– თან. ასევე, მართლაც ადვილია ატვირთო hex ფაილი; უბრალოდ შეადგინეთ და დააჭირეთ ღილაკს Teensy.

ამ პროექტის ღირებულება ჩემთვის 21 დოლარი იყო, პლუს სურათზე ჩამოკიდებული მავთული. ქუჩის ნაწილები მოდიოდა ყავის პერკოლატორისგან (რელე, LED, კონდენსატორი) და როუტერიდან (LED, მოდულარული ჯეკი, დენის ჯეკი, კონდენსატორები). უფასო ნიმუშები იყო 7805 5 ვოლტიანი მარეგულირებელი, ღილაკები და გადამრთველი. მე ასევე აღმოვაჩინე ბევრი ნივთი "გატეხილი ნაწილების" ყუთში ჩემს EE ლაბორატორიაში: ბანანის კონექტორები და კაბელი, მავთული, sn754410 დრაივერი, ოთხ პინიანი სათაური და რეზისტორები. მე მქონდა დამატებითი ლეპტოპის დამტენი, რომელსაც ვიყენებდი ენერგიისთვის და Apple მოდემის კაბელი, რომლის ჩანართიც გატეხილი იყო. სხვა ტექნიკა: კედლის ფირფიტა. მე გამოვიყენე ცხელი წებოს იარაღი, გამაგრილებელი რკინა, ნემსის ფაილი და დენის საბურღი, რომლებიც საკმაოდ სტანდარტულია. ყველაზე უჩვეულო რამ, რაც მე გამოვიყენე, იყო გრძელი, მოქნილი დასაჭერი ინსტრუმენტი.

ნაბიჯი 2: არსებული აპარატურა

უკვე არსებული აპარატურა
უკვე არსებული აპარატურა
უკვე არსებული აპარატურა
უკვე არსებული აპარატურა
არსებული აპარატურა
არსებული აპარატურა
არსებული აპარატურა
არსებული აპარატურა

მე გამიმართლა, რომ უკვე ამდენი იყო დაინსტალირებული. ჩემი ოთახი ხელმისაწვდომია ADA– სთვის და უკვე დამონტაჟებული იყო სხვადასხვა მილები, ელექტრო ყუთები და ელექტრო კარების დარტყმა. კარის დარტყმის მოხსნისას ცნობისმოყვარეობის გამო, აღმოვაჩინე, რომ ის არ იყო დაკავშირებული. კარის დარტყმიდან მიდიოდა ჩემი ოთახის შიგნით ცარიელი კედლის ფირფიტა, და იქიდან მიდი ცარიელი კედლის ფირფიტამდე.

კარის დარტყმა ამბობს, რომ მას სჭირდება 24V@3A ფუნქციონირებისთვის, მაგრამ მე შევძელი 19V, 7.9A დენის წყაროსთან გამკლავება. კარის დარტყმა პოლარიზებული იყო, ასე რომ დარწმუნდით, რომ პოლარობა სწორი გაქვთ!

ნაბიჯი 3: სქემები

სქემები
სქემები
სქემები
სქემები
სქემები
სქემები
სქემები
სქემები

კარის დარტყმის გასაკონტროლებლად გამოვიყენე რელე, რომელიც ყავის პერკულატორში ვიპოვე. ამ სარელეოს 5V -ზე მეტი TTL სჭირდებოდა მისი მართვისთვის, ამიტომ sn754410 გამოიყენებოდა TTL- ის 19V- ზე გადასათვლელად, რამაც რელე გააძრო. Sn754410 ნამდვილად არის quad half-H დრაივერი, ამიტომ მე ვკარგავდი ჩიპის 3/4, მაგრამ მე არ მქონდა არანაირი დენის ტრანზისტორი, ასე რომ მე ვიყენებდი.

Sn754410 ჩიპს აქვს ორი VCC ქინძისთავები, ერთი 5V– ზე, მეორე რა ძაბვაზე გსურთ გამოვიდეს, რაც ჩემთვის იყო 19V. მართლა მაგარი ჩიპია. თქვენ შეგიძლიათ გამოიყენოთ ეს ძრავებისა და რელეების პირდაპირ გადასაყვანად, რადგან მას შეუძლია შეცვალოს 1A მეოთხედი ჩიპი და აქვს ჩამონტაჟებული დაცვის დიოდები. გადახედეთ მონაცემთა ცხრილს. ჩემს წრედში, sn754410 მე პირდაპირ მიერთებულია Teensy– ს გამომავალ პინთან. ღილაკები დაკავშირებულია როგორც აქტიური-დაბალი, რაც ძალიან ხშირია მიკროკონტროლერებისთვის. ისინი პირდაპირ კავშირშია Teensy– სთან, რაც იმას ნიშნავს, რომ პროგრამული უზრუნველყოფის დებიუნცია უნდა გავაკეთო. სტატუსის შუქი უკავშირდება Teensy– ს 1K ohm რეზისტორის საშუალებით; არაფერი განსაკუთრებული. წრე მუშაობდა კონდენსატორების გარეშე, მაგრამ მე ყოველ შემთხვევაში ჩავსვამ მათ. არსებობს დამცავი თავსახურები ორივე 19V და 5V დენის რელსებზე მიწაზე. Teensy– ს პროგრამირებისას 5V გამოვიდა USB– დან, მაგრამ როდესაც ის მუშაობს დამოუკიდებლად, ენერგია მოდის ლეპტოპის დენის აგურიდან. როდესაც მე 7805 მარეგულირებელი პირდაპირ 19 ვ -ს დავუკავშირე, ის მართლაც ცხელი გახდა, ამიტომ ჩავდე რეზისტორების ქსელი, რათა შემავალი ძაბვა და დენი მარეგულირებელს შეეზღუდოს. ეს იყო კლეჯი, მაგრამ ახლა ყველაფერი კონტროლირებად ტემპერატურაზეა.

ნაბიჯი 4: გაყვანილობა ერთად

გაყვანილობა ერთად
გაყვანილობა ერთად
გაყვანილობა ერთად
გაყვანილობა ერთად

მოზარდი არ იყო პრობლემა. მას მოყვება ქინძისთავები, ასე რომ თქვენ შეგიძლიათ შეაერთოთ იგი პირდაპირ პურის დაფაზე.

მე გადავწყვიტე კოდის კოდის კოდის შეღებვა წითელი (+) და შავი (-) ბანანის კაბელებით ლაბორატორიის გატეხილი ნაწილების ყუთიდან. იყო რამდენიმე საცობი, რომელიც ამოჭრილი იყო მათი მავთულხლართებიდან, ამიტომ მე პლასტმასის მოცილებით ამოვიღე პლასტირი, რათა გამჟღავნებულიყო წერტილი. მე ნამდვილად მომწონს, როგორ შეიძლება ლაბორატორიის ბანანის სანთლებს ერთმანეთთან შეერთება. მე გამოვიყენე Apple– ის ტელეფონის კაბელი, რომ დავაკავშირო ოთახის გარეთ არსებული ღილაკები და სტატუსი Teensy– ს შიგნით. მას შემდეგ, რაც ერთი მხარე იყო გატეხილი, მე დავხურე ეს ბოლო და ჩავამაგრე ოთხკუთხედის თავში და დავხურე ცხელი წებოთი. ეს მშვენივრად ჩაერთო ჩემს პურის დაფაზე. მხარე, რომელიც დანამატი დავტოვე, შევიდა მოდულურ ჯეკში, რომელიც გადავარჩიე როუტერიდან. ოთხივე მავთული იყო გამოყენებული (GND, სტატუსის შუქი, დაწყების/გაჩერების ღილაკი, კოდის ღილაკი). თუ არ შეგიმჩნევიათ, მომწონს შტეფსელი და კონექტორები. დენის აგური დაკავშირებულია დენის ჯეკთან, რომელიც გადავიყვანე როუტერიდან. კედლის მილების მეშვეობით მავთულის გადატანა არც ისე რთული იყო, მოქნილი ხელის ჩამორთმევის გამო. ამან ნამდვილად გადაარჩინა ჩემი დღე.

ნაბიჯი 5: კოდი

კოდი
კოდი
კოდი
კოდი

მე შევეცადე ჩემი კოდის კომენტარი. გაითვალისწინეთ, რომ ეს არის 1.0 პროგრამული უზრუნველყოფა, რაც იმას ნიშნავს, რომ ის შეცდომების გარეშე არ არის. სტატუსის შუქი ნელ -ნელა იწყებს ციმციმებას. 2. შეეხეთ თქვენს კოდის ღილაკს. სტატუსის შუქი აციმციმდება 120 BPM- ზე, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ ეს როგორც თქვენი მეტრონომი, თუ გსურთ. თუმცა, კრიპტაპის პროგრამა პროპორციულად გაზომავს პულსის სიგრძეს ერთმანეთთან შედარებით, ასე რომ თქვენ ასევე შეგიძლიათ გამოიყენოთ საკუთარი ტემპი. უბრალოდ დარწმუნდით, რომ საკმარისად ზუსტი ხართ! 3. როდესაც კოდის შეყვანა დასრულდება, კვლავ დააჭირეთ დაწყების/გაჩერების ღილაკს. პროგრამა შემდეგ გადაწყვეტს გაუშვებს თუ არა. ვინაიდან ადამიანები არ არიან დროის ზუსტი მცველები (თქვენი ნამდვილად არ არის), მე ტოლერანტობის კოეფიციენტი +/- 30%-ზე დავაყენე. ეს ნიშნავს, რომ დარტყმის სიგრძე შეიძლება იყოს არაზუსტი ამ ოდენობით და მაინც გაივლის. ეს საკმარისად კარგია იმის გასაგებად, თუ რა განსხვავებაა საკმაოდ მსგავს ჰანგებს შორის. მცირე რაოდენობის ძნელად მისაღწევი გადაფარვა ორმაგ და სამმაგ სიგრძის დარტყმებს შორის, მაგრამ კოდის დარღვევა მაინც საკმაოდ რთულია. კარის გასაღებად, დარტყმები უნდა იყოს ერთმანეთის სწორი პროპორციით (+/- ტოლერანტობის კოეფიციენტი), ხოლო დარტყმების რაოდენობა სწორი. თუ პაროლი არასწორია, პროგრამა ელოდება რამდენიმე წამს, ხოლო იგნორირებას უკეთებს მომხმარებლის შეყვანას. ის ასევე სწრაფად აანთებს სტატუსის შუქს. თუ სწორი კოდია შეყვანილი, სტატუსის შუქი სტაბილურად ანათებს და კარი იხსნება 8 წამის განმავლობაში. ## მომხმარებლის კონფიგურაცია ## გასაღები ინახება მასივში შემდეგნაირად:#განსაზღვრა keylength 5 const int key = {2, 1, 3, 3, 3}; // "გილოცავ დაბადების დღეს" მასივი ინახავს იმ დროს, რაც ხდება დარტყმებს შორის. ასე რომ, თუ თქვენს პაროლს აქვს ექვსი შენიშვნა, როგორიცაა "გილოცავ დაბადების დღეს", მასივში უნდა იყოს ხუთი ელემენტი. თუ თქვენი პაროლი მართლაც გრძელია და მასში 16 -ზე მეტი დარტყმაა, (ნამდვილად რთულია, არ გირჩევთ), თქვენ უნდა გაზარდოთ ამ ხაზში განსაზღვრული რიცხვი: #განსაზღვრეთ შეყვანის კოდი სიგრძე 16 ## კოდი დანარჩენი # # მე მაინტერესებდა შეფერხებები, ასე რომ მე მქონდა ჩემი ღილაკები გამშვები შეფერხებები. იმისათვის, რომ ეს შეფერხებები ადვილად გამოვიყენო, მე მქონდა ჩემი შეფერხების დამმუშავებლების შემოწმება გარკვეული ფუნქციის მაჩვენებლებისთვის. თუ მაჩვენებელი არ არის მითითებული NULL- ზე, გამოძახებულია ის ფუნქცია, რომელზეც ის მიუთითებს. ეს მითითებულია cryptap.c- ს შიგნით არსებული "რეჟიმის დაყენების" სხვადასხვა ფუნქციებით. მე შევეცადე თავიდან აეცილებინა ბუფერული გადავსება მაქსიმალური რაოდენობის შეყვანილი იმპულსების დაყენებით. თუ იმპულსების მაქსიმალური რაოდენობაა შეყვანილი, პროგრამა დაუყოვნებლივ იწყებს პაროლის ანალიზს და გადაწყვეტს გააღოს თუ არა კარი. ვიმედოვნებ, რომ ჩემი კომენტარები დამხმარე იქნება. ## BUGS ## მე შევეცადე USB გამართვის კოდის ამოღება, მაგრამ კოდი თუ არ გავაკეთებ არ იმუშავებს. ასე რომ, მე დავტოვე usb_init () და სხვადასხვა print () განცხადებები. მადლობელი ვიქნები, თუ ვინმეს შეეძლება მათი ამოღება და პროგრამის მუშაობა მაინც. კიდევ უკეთესი, თუ მათ შეუძლიათ ახსნან, რატომ არ მუშაობდა ჩემთვის. პროგრამირებისთანავე, მოზარდი ზოგჯერ არ იღებს კოდის შეყვანას. ამის გადასაჭრელად, ჩართეთ წრე წრეში.

გირჩევთ: