找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2118|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

求助大神 虛位密碼技術(shù) 51單片機(jī)密碼鎖相關(guān)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1100011 發(fā)表于 2023-12-12 00:28 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
基礎(chǔ)的密碼鎖已經(jīng)做好了(89c52主控,矩陣鍵盤輸入,LCD1602顯示,步進(jìn)電機(jī)模擬開鎖,24C02儲存密碼),目前正確密碼設(shè)置的是unsigned int類型的四位密碼,鍵盤輸入密碼設(shè)置的是unsigned long類型的十位數(shù)據(jù),想要加入虛位密碼技,研究半天,代碼始終是敲不順,有沒有大佬能指點(diǎn)一下,給個(gè)編程思路,要是可以給例程參考就再感激不過了,感謝貼吧各位大佬!!虛位密碼技術(shù)要求:不管使用者在正確密碼之前、之后加幾位數(shù),只要中間有連續(xù)正確的密碼,就能解鎖。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:807591 發(fā)表于 2023-12-12 08:21 | 只看該作者
思路不是很簡單嘛,自己好好想想,別人說明白了就不香了
回復(fù)

使用道具 舉報(bào)

板凳
ID:879348 發(fā)表于 2023-12-12 08:49 | 只看該作者
這不就是一個(gè)字符串截取檢查那,string.h有現(xiàn)成的函數(shù),根本不需要自己寫
回復(fù)

使用道具 舉報(bào)

地板
ID:267719 發(fā)表于 2023-12-12 12:55 | 只看該作者
密碼用一個(gè)數(shù)組表示unsigned char pass[n];//密碼n個(gè)數(shù)字。初始一個(gè)密碼比對指針PassIndex=0;輸入的鍵值和pass[PassIndex]比較,如一致,則PassIndex++;否則PassIndex=0;然后判斷PassIndex是否>=n,如果>=n表示密碼正確。否則繼續(xù)等待輸入。
回復(fù)

使用道具 舉報(bào)

5#
ID:318489 發(fā)表于 2023-12-12 15:38 | 只看該作者
用strcmp函數(shù)就行了,C語言自帶的函數(shù)
回復(fù)

使用道具 舉報(bào)

6#
ID:161164 發(fā)表于 2023-12-12 16:03 | 只看該作者
  1. while(Pass_L)
  2. {
  3.         int PassTemp = Pass_L%10000;
  4.         if(PassTemp == Pass_I)
  5.         {
  6.                 PassCheck = 1;
  7.                 break;
  8.         }
  9.         Pass_L/=10;
  10. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

7#
ID:401564 發(fā)表于 2023-12-13 12:42 | 只看該作者
使用字符串查找函數(shù),只要有相同的就可以
但這種密碼好像也不好吧
比如,你密碼是 123
那么,0123可以,1234也可以,9955123也可以?
回復(fù)

使用道具 舉報(bào)

8#
ID:584814 發(fā)表于 2023-12-18 08:51 | 只看該作者
zyx123 發(fā)表于 2023-12-12 15:38
用strcmp函數(shù)就行了,C語言自帶的函數(shù)

這個(gè)函數(shù)是兩兩比對,strstr是找一串字符在另一個(gè)字符串中有無存在。
回復(fù)

使用道具 舉報(bào)

9#
ID:384109 發(fā)表于 2023-12-18 09:09 | 只看該作者
Y_G_G 發(fā)表于 2023-12-13 12:42
使用字符串查找函數(shù),只要有相同的就可以
但這種密碼好像也不好吧
比如,你密碼是 123

就是這個(gè)意思,目的就是讓看見你按密碼的人不知道真密碼是什么,密碼結(jié)尾也可以有其他數(shù)字
回復(fù)

使用道具 舉報(bào)

10#
ID:584814 發(fā)表于 2023-12-18 09:22 | 只看該作者
除密碼開鎖外,已成熟的技術(shù)包括指紋、面容、遠(yuǎn)程遙控等,還有高級的如聲紋等,還有傳統(tǒng)的鑰匙。
個(gè)人感覺所謂的虛位密碼技術(shù)玩玩可以賣就是智商產(chǎn)品。如果你家門口有頭,回放就可以找出密碼(無所謂的除非你的是動態(tài)密碼會變),如果是你開鎖時(shí)常常處于被緊盯的狀態(tài)呵呵直接110比這個(gè)東東好使。另外從技術(shù)上說理論上疑似比沒有更呵呵,比如你設(shè)置成錯入三次密碼就上鎖三十分鐘的話,非固定位的虛位密碼貌似可狂增猜對的可能性,而固定位的則是以給自己找麻煩求心理安慰。
實(shí)現(xiàn)的思路很多,例幾個(gè)供參考:
1、非固定位:當(dāng)輸入的字符與密碼的首字相同時(shí)開始逐一比對否則放棄,全對后可設(shè)開鎖標(biāo)志位,可隨便按(可設(shè)定固定幾位結(jié)束,或#或*鍵或某特定鍵結(jié)束),等結(jié)束標(biāo)志出現(xiàn)后根據(jù)標(biāo)志位操作;
2、固定位:只記錄事先約定的固定位比對密碼,全對后可設(shè)開鎖標(biāo)志位,然后在約定結(jié)束指令后操作;
3、字符比對或數(shù)字比對,接收鍵盤一切字符(或數(shù)字)包括無用字符,在約定結(jié)束指令后找其中有無密碼字符串(或數(shù)字)的存在,然后根據(jù)標(biāo)志位操作,這個(gè)呵呵你懂的。
回復(fù)

使用道具 舉報(bào)

11#
ID:276663 發(fā)表于 2023-12-18 09:56 | 只看該作者
個(gè)人思路:
1.監(jiān)控每一次輸入的按鍵值,當(dāng)遇到第一個(gè)和密碼第一位一致時(shí),開始監(jiān)控下一個(gè)按鍵值,如果,下一個(gè)按鍵值和密碼第二位一樣,則繼續(xù)監(jiān)控下一個(gè)按鍵值是否和密碼第三位是否一致,直到密碼全部正確,標(biāo)記已經(jīng)成功輸入密碼,中間出現(xiàn)任何一位不對,就從新對比第一位密碼。等待按鍵輸入超時(shí)或者用戶確認(rèn)密碼,即可根據(jù)是否成功輸入密碼的標(biāo)記來決定是否開鎖。
2.這樣密碼基本可以無限長隨便輸入,無需很長的buff存儲輸入的密碼內(nèi)容。
回復(fù)

使用道具 舉報(bào)

12#
ID:1100011 發(fā)表于 2023-12-19 19:31 | 只看該作者
szb314 發(fā)表于 2023-12-12 08:21
思路不是很簡單嘛,自己好好想想,別人說明白了就不香了

感謝,確實(shí)是這樣,我想了一下?lián)Q成數(shù)組儲存密碼之后問題就迎刃而解了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表