web大作业制作网页模版,
这学期网络安全课的一个大作业很一般(很差),但出于记录的目的,这个大作业和个人作业贴在这里。
大型工作内容:
源数据: 163,LinkedIn,雅虎数据库密码泄露。
要求:
1.基本分析:包括密码成分分析、键盘密码模式分析、日期密码及其格式分析、拼音使用情况统计分析和英文单词使用情况统计。
2.根据分析结果编写一个密码字典生成器。
3.(可选)根据分析结果,使用传统方法(PCFG/马尔可夫)或机器学习算法分析和评估密码的安全性,并编写程序。
我的任务:
在密码数据库中识别拼音,并进行统计分析。
这就是这个大作业的内容。我使用Python语言,使用Pandas库中的Series、DataFrame格式和正则表达式来编写和实现程序。
程序源代码:
https://github.com/AndyLauCD/python/blob/master/_雅虎拼音分析代码_161012.py
这个作业的主要问题是确定一个字是不是拼音。主要算法参考(基本相当于)通用人类在以下URL的答案:
http://stack overflow . com/questions/8870261/how-to-split-text-without-spaces-to-list-of-words
这是一个很精妙的算法,用的是常见的英文词频词典,用加权和Zipf定律来分词。但是,我把字典改成了汉语拼音。因为汉语拼音没有使用词频的统计,所以我用短拼音比长拼音权重大(比如pin比ping权重大)来划分,做统计分析。
这个赋值的本质是它也可以用在英语用法统计中。不过由于时间关系,这部分已经有其他优秀的小组成员做了,有机会我可以继续分析和绘制统计数据。
统计结果主要如下:
统计163LinkedInYahoo总密码数3727349100000453492总拼音数128731624910789916前20名AAAWOEMAIMEI MELIMAONOMANGI XIAOMIUMEYULI Wei lishazhang kalashinieriangdaliunakamatachane haoliniwusatajianbadeyimoan
另外这个算法有一些中英文识别问题,比如‘A’,根据用户习惯很难判断它属于一个单词还是一个字母。更何况“夏”可以理解为苏、米、二,暂时没有合适的解。留着以后想。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。