月度归档:2018年05月

哈希表的二次探测法解决冲突

二次探测:

概念:若当前关键字通过哈希函数产生的key 和原先的有相同的地址(即冲突)则将key存放在该地址前后后偏移量为1,2,3…的二次方地址处(空)

模式:

key 1: hash(key) + / –  + 0

key 2: hash(key) + / –  + 1^2

key 3: hash(key) + / –  + 2^2

key 4: hash(key) + / –  + 3^2

……

直到为空。 且偏移量不超过 (m / 2)  ^ 2 ,  m为表长

2018.5.30 和Dr.Andrew的交流

  1. Listening

英语的基本结构:subject-verb-objects-v-o

注意:听听力,要格外留心开始时的subject部分,subject可能会很长,听到主体后,(subject部分的其它部分可以不管了)

第一阶段:Ear-training

把每个单词的意思都理解,不必理解整个句子的意思

  1. 听的同时看文字
  1. 听的时候不看文字
  2. 听的同时再看文字

重复abc三个步骤

第二阶段:不听音频

熟悉单词和句子后,查看翻译。

注意:此阶段保持安静,不大声读

重复一二阶段

第三阶段:Detail ear-training

不懂的单词划线,查字典,直到弄清每个单词

再听,不看文字,看是否理解了每个单词,和总体意思。

如果没有,重复第一、二阶段

注意:人的听力和肌肉一样,会疲劳的。每15分钟,停下一切关于听力的事情,休息一下。

  1. Speaking

听 VOA (先是slow)

同步着一起读,声音要大,清楚,15-25外都能清楚听见

如果跟不上,重复听力练习

注意:反复练习,直到每个单词的发音都和音频一样。

  1. Reading

每篇文章20-25分钟

第一步:(about 5 m

先看问题(1-2m),去文章中的每段匹配关键词(30s),

阅读每段的中心句(3m

第二步:(10 m

大致阅读每个段落,清楚 每段的中心思想、作者的观点。

第三步: 15 m

回答问题,detail reading

真的很感激Andrew先生

WiFi破解(局域网) _ 入门

2018.5.27

  • 工具:

cd linux(虚拟机)—minidewep

骨灰字典生成器

wifipr(要注册才能见完整的密码)

 

  • < Minidewep > 中的操作

网卡无法连接,点这断开连接 | 连接

设置:wlan0

All

WPA/WPA2

扫描

启动

保存CAP文件

拷贝到U盘(注意在CDlinux里安全移除,不要直接拔掉U盘)

“ 如果那个软件长时间抓不到包,可以试下那个软件下面的这个奶瓶。它可以强制让连接wifi的人掉线,一般掉线之后都会自动重新连接,所以就有了当时演示的连接wifi的这个过程。很快就能抓到。奶瓶的具体教程,感兴趣的可以百度一下。操作也很简单。”

 

  • < 骨灰字典 > 中的操作:

生成字典

如果密码为10位以上,可生成两个字典,再组合

字典的默认生成位置即软件的根目录(pass1.dic)

 

  • < Wireless Password ecovery > 中的操作

导入CAP

恢复—设置攻击—字典攻击

启动

正则表达式_入门

    1. 正则表达式_入门

    \d 一个数字
    \w 一个字母或数字
    \s 空格(包括tab等)
    . 任意字符
    + 至少一个字符
    ? 0或1个字符
    {n} n个字符
    {n,m} n-m个字符
     * 任意个字符
    [ ] 表示范围
    ^ 表示行的开头
    $ 表示行的结尾

    ②举个栗子

    \d{3}\s+\d{3,8}

    \d{3}三个数字

    \s+至少一个空格

    \d{3,8} 三到八个数字

    ③注意:

    如 – 等特殊字符,需用 \ 转义

    ⑤ 举个栗子:

    用[ ]表示范围

    [a-zA-Z\_][0-9a-zA-Z\_]*

    该栗子可以匹配由字母(大小写)或下划线开头,后面接任意个数字或字母或下划线的字符串,即python的合法变量

    (P/p)thon 可以匹配 Python 或 python

    ⑥注意:

    a.如 py 可以匹配 python ,如果加上 ^py$ 则只能匹配 py

    b.建议使用r

    ⑦.match()方法

    匹配返回True,否则为None

    ⑧切分字符串

    1. 优点:更灵活,排除不要的字符
    2. 举个栗子:

    >>> re.match(r’^(\d+?)(0*)$’, ‘102300’).groups()

    (‘1023′, ’00’)

    ⑨分组(提取字串)

    用( )表示要提取的分组Group

    如果在正则表达式式中定义了组,如:^(\d{3})-(\d{3,8})$  定义了两个组,

    则可以在Match对象上用group()方法提取出子串

    注意:

    group(0) 原始字符串
    group(1) 第一个子串
    group(2…..) 第二、三……个子串

    ⑩贪婪匹配(默认)

    即尽可能匹配多的,可加个?使其采用非贪婪匹配

    如:

    >>> re.match(r’^(\d+?)(0*)$’, ‘102300’).groups()

    >>>(‘1023′, ’00’)

    ⑩+1预编译

    如果一个正则表达式要重复使用上千次,可预编译该RP, 则接下来可直接匹配。对该预编译的对象,则可不用再给出RP

    >>> import re
    # 编译:
    >>> re_telephone = re.compile(r’^(\d{3})-(\d{3,8})$’)
    # 使用:
    >>> re_telephone.match(‘010-12345’).groups()
    (‘010’, ‘12345’)

  1. 有点困,睡觉了😴