<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux 筆記本基于“敲打”的命令

Linux 筆記本基于“敲打”的命令

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

主程序的邏輯

利用這些子程序主程序的邏輯允許用戶(hù)創(chuàng )建敲打序列或在守護模式下監聽(tīng)敲打序列并執行第一部分是在用戶(hù)指定 c 選項(用于創(chuàng )建模式)時(shí)執行的可以用簡(jiǎn)單的超時(shí)進(jìn)程來(lái)結束敲打序列增大最大超時(shí)長(cháng)度變量的值可以讓兩次敲打序列之間暫停 秒以上如果我們保留最大超時(shí)長(cháng)度為 秒那么程序運行到這個(gè)時(shí)間時(shí)就會(huì )結束并打印當前輸入的敲打序列

清單 創(chuàng )建序列主邏輯

if( $option eq c ){ print create a knock pattern:n; $startTime = getEpochSeconds(); # reset time out start while( $timeOut == ){ $currTime = getEpochSeconds(); # check if there has not been a knock in a while if( $currTime $startTime > $MAX_TIMEOUT_LENGTH ){ $timeOut = ; # exit the loop }else{ # if a knock has been entered before timeout reset timers so # more knocks can be entered if( $knockCount != $knockAge ){ $startTime = $currTime; # reset timer for longer delay $knockAge = $knockCount; # synchronize knock counts }# if a new knock came in }# if timer not reached knockListen(); select(undef undef undef $SLEEP_INTERVAL); }#timeOut = if( @baseKnocks ){ print place the following line in $ENV{HOME}/knockFilenn; for( @baseKnocks ){ print $_ } print _#_ (command here) _#_ nn; }#if knocks entered

第二部分是用來(lái)在一個(gè)無(wú)限循環(huán)中監聽(tīng)敲打序列的主邏輯它在一個(gè)循環(huán)中大約要睡眠/ 秒在這個(gè)循環(huán)中還使用了一個(gè)基于秒的超時(shí)在足夠的延時(shí)之后重置敲打序列注意在這個(gè)例子中敲打監聽(tīng)超時(shí)時(shí)間為 秒而最大超時(shí)時(shí)間為 秒這樣就提供了在敲打創(chuàng )建模式下進(jìn)行簡(jiǎn)單測試設置的功能并為敲打序列的監聽(tīng)模式提供了一個(gè)快速重置選項

清單 主程序中的敲打監聽(tīng)代碼

}else{ # main code loop to listen for knocking and run commands readKnockFile(); $startTime = getEpochSeconds(); while( $timeOut == ){ $currTime = getEpochSeconds(); if( $currTime $startTime > $LISTEN_TIMEOUT ){ $knockCount = ; @baseKnocks = (); $startTime = $currTime; if( $option ){ printlisten timeout resetting knocks n } }else{ if( $knockCount != $knockAge ){ $startTime = $currTime; # reset timer for longer delay $knockAge = $knockCount; # synchronize knock counts }# if a new knock came in compareKnockSequences(); }#if not reset timeout knockListen(); select(undefundef undef $SLEEP_INTERVAL); }#main knock listen loop }# if create or listen for knocks

警告安全性

knockAge 程序非常適合用于為系統提供一種額外的用戶(hù)輸入通道然而需要注意的是使用 knockAge 來(lái)做任何事都需要在系統上進(jìn)行認證是的它可以防止密鑰記錄程序監聽(tīng)密碼的問(wèn)題但是很多與 敲打認證 有關(guān)的因素都表明在對安全性敏感的環(huán)境中使用這種技術(shù)還不夠成熟敲打序列目前是以 到 個(gè)數字在 ~/knockFile 中進(jìn)行存儲的它們以毫秒為單位來(lái)表示延時(shí)這個(gè) 密碼 文件非常容易讀取并且通過(guò)嘗試和匹配敲打模式可以獲得對系統的訪(fǎng)問(wèn)權限排除毫秒值中一些精度是一種可用的方法但是這種練習就留給那些希望自行對系統風(fēng)險進(jìn)行評估的讀者好了

在任何敏感環(huán)境中我們都應該進(jìn)行一些研究判斷用戶(hù)是否有足夠的應變能力并能夠精確地重現敲打序列例如我們是否具有能力創(chuàng )建并連續輸入可接受長(cháng)度的敲打密碼?具有普通智商的人是否可以直觀(guān)地使用這種敲打序列?或者我們是否準備使用 刮臉和理發(fā)操作 來(lái)作為密碼?


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: Linux 命令

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>