2021-2022-1 20211418 《信息安全專業(yè)導(dǎo)論》第十二周學(xué)習(xí)總結(jié)
作業(yè)信息
[2021-2022-1信息安全專業(yè)導(dǎo)論](https://edu.cnblogs.com/campus/besti/2021-2022-1fois)
[2021-2022-1信息安全專業(yè)導(dǎo)論第十二周作業(yè)](http://www.rzrgm.cn/rocedu/p/9577842.html#WEEK12)
教材學(xué)習(xí)內(nèi)容總結(jié)
- 閱讀《計算機(jī)科學(xué)概論》第17章(計算機(jī)安全),從各級安全,阻止未授權(quán)訪問,惡意代碼,密碼學(xué),保護(hù)你的在線信息幾個方面入手,系統(tǒng)地講解了計算機(jī)安全方面的內(nèi)容,了解了信息安全的三大基礎(chǔ),三種鑒別憑證,安全密碼的創(chuàng)建和評估,惡意軟件的類別,安全攻擊的類別,密碼系統(tǒng)的定義,加密和解密過程等概念和過程。
教材學(xué)習(xí)中的問題和解決過程
問題1: 我在教材上看到關(guān)于驗證碼的定義:
驗證碼(CAPTCHA):一種軟件機(jī)制,用來驗證一個網(wǎng)絡(luò)表單是由一個人提交的,而不是一個自動化的程序。
但是我其實覺得理論上也可以設(shè)計出相應(yīng)的程序來識別這種驗證碼。
問題1解決方案: 我上網(wǎng)查找了相關(guān)資料,找到了一篇博客(原博客:驗證碼的存在毫無意義——論人機(jī)識別的可行性 - 拔絲煎面 - 博客園 (cnblogs.com))
關(guān)于作者在這篇博客里面提到的分析:“其實現(xiàn)在的驗證碼就在做和這道電子門同樣的事——在鐵路訂票的網(wǎng)站上煞費苦心弄出來一套奇形怪狀的驗證碼,人眼都難以識別,機(jī)器是否不能識別還存疑(有數(shù)據(jù)顯示,90%以上的驗證碼對注冊機(jī)、刷票程序等沒有用處,反而對人絕對有用)。機(jī)器與人為操作的結(jié)果都是對服務(wù)器發(fā)送請求,而在發(fā)送網(wǎng)絡(luò)請求的時候人為操作的痕跡已經(jīng)完全沒有了,換句話說,當(dāng)我們點擊"提交"按鈕數(shù)據(jù)已經(jīng)發(fā)送到網(wǎng)絡(luò)上以后是無法驗證這個請求操作是來自人還是機(jī)器。那么我們考慮網(wǎng)頁上當(dāng)一個人類用戶去輸入文字的時候是怎樣的一個過程:光標(biāo)從別處移入到信息輸入框內(nèi),光標(biāo)變成一個"I形"的可輸入符,點擊鼠標(biāo)左鍵,光標(biāo)再次變成閃爍的輸入提示符,重復(fù)(按下鍵盤按鍵,按鍵抬起),完成輸入。這個過程是機(jī)器不會去做的,所有的自動登錄的軟件都是直接發(fā)送請求到服務(wù)器,機(jī)器并不去模擬用戶的動作,因為沒有任何意義(至少在本文發(fā)出去前是這樣)。而這個人為動作我們卻是我們驗證操作來源或者叫"人機(jī)識別"的關(guān)鍵。我們在頁面的腳本代碼中加以驗證鼠標(biāo)是否在移入了指定的輸入框時狀態(tài)發(fā)生了改變?如果鼠標(biāo)變成了輸入符,則繼續(xù)驗證:是否在這之后點擊量鼠標(biāo)左鍵,如果有,則進(jìn)入輸入狀態(tài),繼續(xù)驗證:在輸入狀態(tài)下是否有按鍵按下和抬起?在按鍵按下和抬起中可以記錄按下了哪一個鍵,然后在按鍵抬起的時候與真實輸入框內(nèi)的字符進(jìn)行比較是否一致(好在現(xiàn)在的密碼是沒有中文字符的),如果一致則認(rèn)為是一個人工的輸入,之后在最后點擊按鈕的時候可以再次進(jìn)行綜合驗證。思路是這樣,當(dāng)然聰明的程序員可以把這個驗證過程加以完善,我相信可以做到不需要驗證碼一樣可以完全識別出有效的人為操作。”我認(rèn)為很有道理。或許有關(guān)驗證碼的用途和功能還有待完善。
代碼調(diào)試過程中的問題和解決過程
本周沒有新代碼,全部是復(fù)習(xí)重做,沒有遇到問題。
代碼托管
from transitions import Machine
class Progress(object):
pass
model = Progress()
states = ['New', 'Ready', 'Waiting', 'Running', 'Terminated']
transitions=[
{'trigger': 'Admitted', 'source': 'New', 'dest': 'Ready'},
{'trigger': 'Input', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'Output', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'event_completion', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'event_wait', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Input', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Output', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Interrupt', 'source': 'Running', 'dest': 'Ready'},
{'trigger': 'Dispatch', 'source': 'Ready', 'dest': 'Running'},
{'trigger': 'Exit', 'source': 'Running', 'dest': 'Terminated'}]
machine=Machine(model=model,states=states,transitions=transitions,initial='New')
print(model.state)
model.Admitted()
print(model.state)
model.Dispatch()
print(model.state)
model.event_wait()
print(model.state)
model.Output()
print(model.state)
model.Dispatch()
print(model.state)
model.Exit()
print(model.state)
i = input('Please enter a number: ')
n = 8888
try:
result = n / int(i)
print(result)
print('{0} divided by {1} is {2}'.format(n,i,result))
except (ZeroDivisionError,ValueError) as e:
print('Error: {}'.format(e))
money = 5834.5678
name = 'Tony'
print('{0:s}年齡{1:d},工資是{2:f}元。'.format(name,20,money))
print('{0}年齡{1},工資是{2:0.2f}元。'.format(name,20,money))
print("{0}今天的收入是{1:G}元。".format(name,money))
print("{0}今天的收入是{1:g}元。".format(name,money))
print("{0}今天的收入是{1:e}元。".format(name,money))
print("{0}今天的收入是{1:E}元。".format(name,money))
print('十進(jìn)制數(shù){0:d}的八進(jìn)制表示為{0:o}'.format(18))
print('十進(jìn)制數(shù){0:d}的十六進(jìn)制表示為{0:x}'.format(18))
input()
def f1(x):
return x > 50
data1 = [66,15,91,28,98,50,7,80,99]
filtered = filter(f1,data1)
data2 = list(filtered)
print(data2)
import datetime
d = datetime.date.today()
print(d)
delta = datetime.timedelta(10)
d += delta
print(d)
d = datetime.date(2020,1,1)
delta = datetime.timedelta(weeks = 5)
d -= delta
print(d)
i = 100; r = 0; s = 0; t = 0
while i < 1000:
r = i // 100
s = (i - r * 100) // 10
t = i - r * 100 - s * 10
if i == (r ** 3 + s **3 + t ** 3):
print("i = " + str(i))
i += 1
上周考試錯題總結(jié)
暫無。
其他
雖然上周已經(jīng)完善了Python教材的學(xué)習(xí),但是我的掌握程度還不夠,還需要繼續(xù)練習(xí)。
學(xué)習(xí)進(jìn)度條
| | 代碼行數(shù)(新增/累積)| 博客量(新增/累積)|學(xué)習(xí)時間(新增/累積)|重要成長|
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 200/400 | 2/4 | 20/40 |
|
| 第三周 | 200/600 | 2/6 | 20/60 |
|
| 第四周 | 200/800 | 2/8 | 20/80 |
|
| 第五周 | 200/1000 | 2/10 | 20/100 | |
| 第六周 | 200/1200 | 1/11 | 20/120 | |
| 第七周 | 200/1400 | 1/12 | 20/140 | |
| 第八周 | 200/1600 | 1/13 | 20/160 | |
| 第九周 | 200/1800 | 3/16 | 20/180 | |
| 第十周 | 200/2000 | 1/17 | 20/200 | |
| 第十一周 | 200/2200 | 1/18 | 20/220 |
| 第十二周 | 200/2400 | 1/19 | 20/240 |
參考資料
《計算機(jī)科學(xué)概論》《看漫畫學(xué)Python》
posted on
浙公網(wǎng)安備 33010602011771號