2021-2022-1 20211418 《信息安全专业导论》第十二周学习总结
作业信息
[2021-2022-1信息安全专业导论](https://edu.cnblogs.com/campus/besti/2021-2022-1fois)
[2021-2022-1信息安全专业导论第十二周作业](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12)
教材学习内容总结
- 阅读《计算机科学概论》第17章(计算机安全),从各级安全,阻止未授权访问,恶意代码,密码学,保护你的在线信息几个方面入手,系统地讲解了计算机安全方面的内容,了解了信息安全的三大基础,三种鉴别凭证,安全密码的创建和评估,恶意软件的类别,安全攻击的类别,密码系统的定义,加密和解密过程等概念和过程。
教材学习中的问题和解决过程
问题1: 我在教材上看到关于验证码的定义:
验证码(CAPTCHA):一种软件机制,用来验证一个网络表单是由一个人提交的,而不是一个自动化的程序。
但是我其实觉得理论上也可以设计出相应的程序来识别这种验证码。
问题1解决方案: 我上网查找了相关资料,找到了一篇博客(原博客:验证码的存在毫无意义——论人机识别的可行性 - 拔丝煎面 - 博客园 (cnblogs.com))
关于作者在这篇博客里面提到的分析:“其实现在的验证码就在做和这道电子门同样的事——在铁路订票的网站上煞费苦心弄出来一套奇形怪状的验证码,人眼都难以识别,机器是否不能识别还存疑(有数据显示,90%以上的验证码对注册机、刷票程序等没有用处,反而对人绝对有用)。机器与人为操作的结果都是对服务器发送请求,而在发送网络请求的时候人为操作的痕迹已经完全没有了,换句话说,当我们点击"提交"按钮数据已经发送到网络上以后是无法验证这个请求操作是来自人还是机器。那么我们考虑网页上当一个人类用户去输入文字的时候是怎样的一个过程:光标从别处移入到信息输入框内,光标变成一个"I形"的可输入符,点击鼠标左键,光标再次变成闪烁的输入提示符,重复(按下键盘按键,按键抬起),完成输入。这个过程是机器不会去做的,所有的自动登录的软件都是直接发送请求到服务器,机器并不去模拟用户的动作,因为没有任何意义(至少在本文发出去前是这样)。而这个人为动作我们却是我们验证操作来源或者叫"人机识别"的关键。我们在页面的脚本代码中加以验证鼠标是否在移入了指定的输入框时状态发生了改变?如果鼠标变成了输入符,则继续验证:是否在这之后点击量鼠标左键,如果有,则进入输入状态,继续验证:在输入状态下是否有按键按下和抬起?在按键按下和抬起中可以记录按下了哪一个键,然后在按键抬起的时候与真实输入框内的字符进行比较是否一致(好在现在的密码是没有中文字符的),如果一致则认为是一个人工的输入,之后在最后点击按钮的时候可以再次进行综合验证。思路是这样,当然聪明的程序员可以把这个验证过程加以完善,我相信可以做到不需要验证码一样可以完全识别出有效的人为操作。”我认为很有道理。或许有关验证码的用途和功能还有待完善。
代码调试过程中的问题和解决过程
本周没有新代码,全部是复习重做,没有遇到问题。
代码托管
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('十进制数{0:d}的八进制表示为{0:o}'.format(18))
print('十进制数{0:d}的十六进制表示为{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
上周考试错题总结
暂无。
其他
虽然上周已经完善了Python教材的学习,但是我的掌握程度还不够,还需要继续练习。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| 第一周 | 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 |
参考资料
《计算机科学概论》《看漫画学Python》