STEM-工程挑战 · 2020年3月2日 0

密码安全:您的密码容易被黑客攻击?

难度 <! - 8 - >
所需时间 平均(6-10天)
先决条件 使用Python或其他编程语言的经验。这是不是初学者级编程项目,仅建议至少具有一定编程经验的学生。
材料可用性 具有互联网访问权限和安装软件的权限
费用 非常低(低于20美元)
安全 攻击其他人的受密码保护的帐户是联邦可以起诉的罪行。该科学项目中给出的程序示例仅适用于该科学项目。

摘要

我们每天都会为我们的电子邮件和其他计算机帐户使用密码您使用的密码有多安全?有人猜你的密码有多难?编写计算机程序来猜测密码有多难?您可以通过在计算机语言Python中编写一个简单的密码guesser来亲眼看到。我们将为您提供一些想法,一些示例代码和一些密码,供您的计算机程序尝试猜测。

目的

评估不同类型的密码破解的难度,然后编写一个简单的密码猜测程序来尝试猜测样本密码。

积分

Howard Eglowstein,Science Buddies

由Ben Finio编辑,博士,科学伙伴

  • Python™是Python Software Foundation的注册商标。
  • Microsoft®是Microsoft Corporation的注册商标。
  • Apple®和Mac®是Apple Inc.的注册商标。
  • RaspberryPi®是Raspberry Pi Foundation的商标。
  • Linux®是Linus Torvalds的注册商标。

引用本页

此处提供了一般引用信息。请务必检查所使用方法的格式,包括大小写,并根据需要更新引文。

MLA风格

科学伙伴。”密码安全:你的密码很容易被黑了?” 科学伙伴,2018年3月3日,https://www.sciencebuddies.org/science-fair-projects/project-ideas/CompSci_p046/computer-science/password-security-how-easily-can-your-password-be-hacked。2019年7月6日访问。

APA风格

科学伙伴。(2018年3月3日)。密码安全:您的密码很容易被黑客攻击?从…获得https://www.sciencebuddies.org/science-fair-projects/project-ideas/CompSci_p046/computer-science/password-security-how-easily-can-your-password-be-hacked


最后编辑日期:2018-03-03

简介

保护自己和数据安全通常被称为网络安全。计算机服务提供商(如银行,电子邮件或社交媒体)有责任让黑客远离人们的系统。作为计算机用户,您可以通过小心通过互联网与谁交谈,分享哪些信息以及选择和使用强密码来做自己的事。计算机密码是最重要的一个用于保护计算机系统信息的工具。就像你不希望任何人窃取你的密码并控制你的Instagram帐户一样,银行必须采取预防措施,防止犯罪分子偷钱。由于密码非常重要,窃取密码和故意访问其他人的计算机是犯罪行为。

您每天都使用计算机密码,无论是访问您的电子邮件帐户,社交网站,还是进行网上银行业务。选择密码时可能遇到的挑战之一是让您轻松记住,但其他人难以猜测。例如,使用您的狗的名字,街道地址或以某种方式与您的用户名相关联的任何信息可能不是一个好主意。例如,如果Sue Jones使用登录名”SJones” 访问她的电子邮件并住在314 Apple Pie Road,则密码”pie314″ 可能不是一个好的选择。你明白为什么吗?虽然她可能很容易记住,但它很短,并且包含她的街道地址。更强的密码可能是”9J8LZcWAMzjJQUnD” … 如果她能记住它。这当然要长得多,它不是一个字,它没有任何可识别的信息。但是谁能记得那个?如果你把它写下来放错纸张,那就不那么安全了。

强密码是一个你可以轻松记住的密码,但这很长,由几个单词,数字和标点符号组成,但没有任何内容,如果有人猜到你的话在网上。创建强密码有很多策略。

  • 该示例来自在线完全随机密码生成器。它随机选择了16个字符。
  • 另一种策略是首先考虑一个密码短语,这是你喜欢的短语或电影的引用。然后使用每个单词的第一个字母,并在某处放入数字或标点符号。如果你的密码是”T4IdtwiKa” ,如果你是绿野仙踪的粉丝,你能更容易记住吗? “ T oto, I d on’t t hink w e’re n K ansas a nymore。”数字 4 取代逗号,是Toto的腿数。
  • 另一种常见方法是使用两个完全不相关的单词并用数字或字符分隔;容易记住”聋+食蚁兽” 吗?是否仍然容易记住,如果你撒上一些数字,比如你曾经住过的电话号码? “deaf555 + 4715anteater” 对某人来说可能更难猜测。
  • 或者考虑一个没有任何意义的无意义词,但您仍然可以发音,例如”USiFiPiZOG” 是可发音的随机密码的示例。将其与段落中以”9J8″ 开头的那个相比较。记忆更容易还是更难?帮助我们记住事物的记忆技巧被称为助记设备。尝试大声说出两个随机密码,看看你记得哪一个。

你可以看到天空中有可能的密码和星星一样多。

密码类型 示例密码
根据个人知识轻松猜测 pie314
可发音随机 USiFiPiZOG
完全随机(难以猜测) 9J8LZcWAMzjJQUnD
密码短语 T4IdtwiKa( T oto, 4I d on’t t hink w e’re i n K ansas a nymore)
两个不相关的单词 聋人+食蚁兽
两个不相关的单词+个人信息 deaf555 + 4715anteater

表1. 不同类型的密码和一些示例。

有这么多可能的密码,任何人都可以猜测你的密码并窃取你的电子邮件帐户?事实上,人们不擅长挑选随意的东西,并且很难记住那些在某些方面没有意义的事情。在”聋食前厅” 的例子中,如果您的电话号码从未555-4715,您可能无法记住第二个。人们喜欢在他们的经历中挑选与其他东西相关的东西,并且有所帮助。我们根本不记得胡说八道。我们也不想记住那些冗长而细致的事情;然而,如果我们不想让任何人猜测,那么长而难的密码就是我们应该拥有的密码。这就是挑战;我们如何在”易记” 和”难以猜测” 之间取得平衡?

该科学项目的第一部分是在互联网上对密码安全性进行一些研究。当您进行研究时,您会发现数以千计的网站提供密码建议或提供评估您的密码并告诉您它们有多强大。有些人对数学有解释,说明为什么使弱密码更长一点会使它成为一个强密码。您将需要了解为什么某些密码比其他密码更好以及人们为什么选择他们使用的密码。如果他们想抓一个小偷,警察必须像小偷一样思考,所以当试图窃取密码的人使用这些信息来帮助他们时,你可以在这个科学项目中使用它,以便更容易猜测我们的样本,从而改善科学项目完成后您自己的密码。一旦找到隐藏和猜测密码的策略,您将编写一个计算机程序,使用您所了解的策略来猜测密码。像典型用户一样考虑密码;您认为典型用户如何选择密码?您将编写一个计算机程序来尝试这些技术来猜测我们提供的一些样本,并猜测您自己的样本。

请记住,之前已经说过,未经许可闯入计算机是犯罪行为吗?在这个科学项目中,您将通过简单地猜测密码来”闯入” 自己的计算机。一旦你猜到我们提供的那些,你就可以在我们设置的特殊网站上试用它们。

该过程包含一些示例代码,可帮助您入门。一旦您进入编程阶段,您可以从以下几个方向中选择一个科学项目:

  • 修改提供的编程示例,尝试猜测Science Buddies已加密的密码。每个密码需要多长时间才能猜到?这告诉你什么类型的密码最强?
  • 根据您对密码破解的了解,让朋友或家人弥补弱密码和强密码。根据您的密码猜测程序测试这些密码。你认为你的程序要破解自己的电子邮件密码多久了?

术语和概念

  • 网络安全
  • 强密码
  • 完全随机密码
  • 密码短语
  • 可发音随机密码
  • 助记符设备
  • 密码不足
  • 指数曲线
  • 算法
  • 暴力攻击
  • 字典攻击
  • 流程
  • 综合发展与学习环境(IDLE)
  • 领先的零
  • 明文
  • 加密
  • 散列
  • 调试

问题

  • 什么使密码变弱或变强?
  • 如果你想制作一个没有人会猜到的密码,你会怎么选择一个?
  • 如果您想猜猜某人的密码,您想知道哪些信息以及您认为他们在密码中使用了哪些信息?

参考书目

互联网上充满了有关密码和密码安全的信息。如果您搜索”密码安全” ,”安全密码” 或”密码破解” ,搜索引擎会找到许多网站。这里有一些可以帮助您入门。

这些资源可以向您介绍Python或作为参考:

使用互联网时,密码只是您应该注意的安全问题之一。此资源有更多详细信息:

材料和设备

  • 安装了互联网访问和Python 3的计算机。您可以从 https://www.python.org/downloads/下载Python 3。确保为您的操作系统下载了正确的版本。
  • 下载这些文件并将其保存到计算机上的同一文件夹中:
  • 实验室笔记本
  • 铅笔或钢笔
  • 计算器
  • 可选,但建议:Python 3参考书或在线教程(请参阅​​背景部分中的参考书目)。

实验程序

网络安全项目警告

网络安全项目可能很有趣,但如果您不小心,它们也会让您陷入困境。在进行网络安全项目时,请确保遵循这些规则:

  • 未经个人(或拥有计算机的人)的同意,不得攻击任何个人,计算机,系统或网络。例如,除非您先获得他们的许可,否则不要试图猜测某人的电子邮件密码并登录他们的帐户,或者在未经网站所有者许可的情况下尝试入侵网站。
  • 即使您同意进行攻击,攻击也应仅用于学习目的,您应该帮助个人或组织解决您发现的任何问题(这称为”白帽” 黑客行为)。例如,如果您能够猜出某人的密码,您应该告诉他们他们需要选择一个更强的密码(并帮助他们学习如何)。不要阅读他们的电子邮件,更改他们的任何帐户设置,查看私人信息或图片等文件,或告诉其他人他们的密码.
  • 如果您的项目涉及人类受试者,即使您已经同意,您仍可能需要获得您的科学博览会或机构审查委员会的批准(类似于心理学或医学实验规则)。看到此页面了解更多信息。
  • 不要伪装成在线的其他人,公司或其他组织。这包括伪装成社交媒体网站上的其他人,设置虚拟网站,使其看起来像信誉良好的公司的真实网站,或发送”网络钓鱼” 或其他设计看起来像是由其他人发送的电子邮件.(一项对照实验,只有研究参与者才能访问此类网站或电子邮件的示例。)
  • 不要使用非法获取的数据(例如,从公司员工数据库中窃取的联系信息),即使它被其他人窃取并已在网上发布。
  • 不要公开发布敏感的个人信息,即使是经过同意获得的。例如,如果您的项目涉及访问人们的联系信息(合法),请不要在科学展览会的”结果” 部分发布某人的姓名和地址。完成项目后,您应该销毁任何此类信息(通过粉碎纸张或删除文件)。
  • 请勿在连接到互联网的计算机上安装或运行任何恶意软件(病毒,恶意软件,间谍软件,特洛伊木马等)。该软件很容易传播到其他计算机,并失去控制.

如果您对项目有任何疑问或疑问,请在开始之前咨询您的老师或科学博览会管理员。

计算密码强度

进行在线搜索,找到一个表格,讨论给定长度和给定样式的可能密码数量。例如,考虑标准行李箱或现金箱锁(图1)。

现金箱和手提箱经常使用带三个拨号盘的密码锁
图1。标准钱箱或行李箱锁有三个表盘;每个都可以设置为0到9,总共1,000个组合。

  1. 由于每个刻度盘可以设置为0到9,有多少可能的组合?你可能马上知道它是1000,但为什么呢?每个表盘有10个位置。如果您将刻度盘视为C,B和A,其中A是最右侧的刻度盘,对于C和B的每个可能设置,A可以设置为10个位置。对于C的每个可能设置,B可以设置为10个位置,并且对于每个位置,A可以设置为10个位置。如果我们忽视C&amp; B只考虑A,有10个。如果我们忽略C而只考虑B&amp; A,有10×10或100.当我们考虑C时,C有10个位置,对于每个位置我们有100个位置用于B&amp;答:那就是10×10×10,或1000。对于仅由0到9的数字组成的锁(或密码),可能的数量是10 3 ,或10×10×10 = 1,000。如果锁具有4个刻度盘,则其将具有10 4 或10×10×10×10 = 10,000。如果你可以尝试每秒一个组合,猜测一个现金盒与一个拨号盘的组合需要多长时间(在最坏的情况下,你必须尝试所有的数字)? 2秒? 3秒? 4秒?在实验室笔记本中制作一张表格,显示不同数量”拨号” 的时间估算值。

拨号数量(每个拨号上0-9) 猜测时间(每秒一次猜测)
1 10 s
2 100 s(1分钟[min],40 s)
3 1,000 s(16 min,40 s)
4
5
6
7
8
表2。完成此表格,表明当您增加拨号次数时,猜测数字所需的时间会呈指数级增长。

  1. 在图表上绘制表2中的信息,x轴上的刻度数和在y轴上破解密码的时间。生成的曲线称为指数曲线,并显示当您再添加一个表盘时,破解该组合的难度会呈指数增长。
  2. 在另一张表中,现在考虑锁上的每个刻度盘都包含A-Z中的字母,其中26个是准确的。如果您有一个表盘,那么有多少种可能的组合? 26 1 = 26.两个表盘怎么样? 26 2 = 26×26,或676.在表格中填入1-8个拨盘的可能组合。每次添加刻度盘时,您将可能的组合增加了26倍。它变得非常快,不是吗?

拨号数量(每个拨号上的A-Z)) 猜测时间(每秒一次猜测)
1 26 s(1分钟,2秒)
2 676 s(11 min,16 s)
3
4
5
6
7
8
表3。完成此表格,表明当您增加拨号次数时,猜测密码所需的时间会呈指数级增长。

  1. 这个科学项目不会处理拨号锁;你将调查更难猜的计算机密码。制作更合适的第三个表格。您可以在密码中使用多少个可能的字符?肯定是A-Z,然后是小写字母a-z,数字0-9,以及键盘顶部的一些字符。至少有62个,那就是你只使用字母和数字。因此,想象一组具有至少62个位置的真正大表盘,并制作一个表格,显示可能性的数量。大多数计算机系统在密码中需要六个或更多字符,并允许相当多,可能是20或更多。当你开始计算62位拨号的可能性时,得到62 1 ,62 2 ,62 3 这些表盘中只有8个是62 8 ,或218,340,105,584,896(218万亿也用科学记数法写成2.18×10 14 )可能的组合。如果您的密码是12个字符而不是8个怎么办? 16或20个字符呢?
  2. 为了演示简单地为密码添加额外字符的效果,创建一个表格或图表来说明您的科学项目的这些数据。使用不同的颜色显示虚拟拨号锁上的刻度盘大小。
  3. 使用您在研究中找到的数据和建议,考虑图像和图形,以解释在选择密码时要做什么,以及如何选择一个强大的密码。如果有人试图输入窃取您的电子邮件所需的所有密码,那么对于不同长度的密码需要多长时间?将时间长度与较长时间(可能是地球时代)进行比较的显示可以帮助显示强密码的优势。

破解密码

关于剽窃的说明:该项目涉及Science Buddies编写的示例代码。当事物像这样开源时,可能会混淆什么是抄袭和什么不是抄袭,所以科学伙伴已经创建了这套明确的定义来指导你。如果你:

  • 按原样使用程序,并给予Science Buddies信用 – 这是不是抄袭
  • 修改程序并说它们是改编自Science Buddies-这是不是抄袭
  • 从头开始编写自己的程序 – 这是不是抄袭
  • 如果您按原样使用这些程序(或修改它们)而不提及Science Buddies-这是抄袭.

现在您已经看到了只有8个左右的字符可以存在多少个密码,请考虑人为因素。人们不太可能选择完全荒谬字符的长密码。在您的科学项目的这一部分中,您将考虑不同的方式来猜测某人可能选择的内容并编写一个计算机程序来尝试”破解” 密码。您可以使用许多不同的算法来猜测密码。例如,您可以尝试暴力攻击,其中检查字母,数字和符号的每种可能组合。这就像在图1中的锁上尝试每种可能的组合一样。您也可以尝试字典攻击,您可以在其中猜测常用密码或其他单词。您甚至可以尝试这些方法的组合(例如,组合两个单词)。计算机科学家使用流程图来表示他们的算法,如图2和图3所示。

请记住:这不是初学者级编程项目。如果这是您第一次使用Python(或者根本不进行任何计算机编程),那么这个项目起初可能太难了。你需要花一些时间练习Python,做一些在线教程,并在尝试解决这个问题之前尝试一些更简单的项目。

注意:某些用户在尝试运行为此项目提供的代码时报告了错误。此错误似乎仅影响某些计算机,并与代码缩进的方式有关.Python上的嵌套代码应该以四个空格(4,8,12,16 ……)的倍数缩进。如果出现”意外缩进” 错误,请检查以确保该行的缩进是正确的(例如,如果该行缩进了5个空格,则删除一个空格并将其更改为4个空格)。您还可以注释掉任何导致错误消息的”打印” 语句。

  1. 转到 http://www.python.org/download 并下载正确版本的Python 3(不是2)适用于您的操作系统。下载将安装集成开发和学习环境(IDLE),可用于编辑和运行Python程序.Python是用于自动化Web服务器和行业中的计算机进程的流行语言,此项目的示例代码是用Python 3编写的。但是,如果您熟悉其他编程语言(C,C ++,BASIC,Pascal等) ,你可以改用它.
  2. 下载并保存文件 crack_password.py passwords.txt 到您计算机上的同一文件夹.crack_password.py是Science Buddies编写的一个示例程序,包括四种不同的密码破解算法:
    1. 方法#1:仅使用数字0-9进行暴力攻击。这就像试图猜测自行车或行李箱锁的组合,如图1所示。如果您认为有人只使用密码作为密码(例如ATM或智能手机上的PIN [个人识别号码]),一种方法只需从0到999计数,并尝试将其中的每一个作为密码。由于锁上的所有刻度盘总是被使用,因此用前导零填充数字以给出”000″ ,”001″ 等一直到”999″ .
    2. 方法#2:使用数字和大写/小写字母进行暴力攻击。想象一下在每个轮子上也有字母a-z和A-Z的锁。这给每个轮子62个字符而不是10个。这个方法将从一个”轮子” 开始并测试所有62种可能性。然后它增加一秒,并尝试所有62 2 的可能性,然后是第三个并尝试62 3 等,最多8个字符。这种方法可能需要很长时间来运行更长的密码,所以我们实际上将它保存在程序的最后一个(看看你填写的表3 – 猜测8个字符的密码需要多长时间,即使一台电脑每秒可以进行一百万次猜测吗?
    3. 方法#3:使用常用密码列表进行字典攻击。第三种方法利用人们在现实生活中经常使用的密码列表。书籍 Perfect Passwords 的作者Mark Burnett编制了2005年使用的500个最常见密码的列表。我们从该列表开始列出400多个单词,保存在passwords.txt中。第三种方法尝试所有这些密码。由于人们可能会使用大写字母,因此它也会以第一个字母为首都来尝试每个单词。
    4. 方法#4:结合单词的高级字典攻击。第四种方法建立在第三种方法的基础上,并利用人们经常使用密码将两个单词与数字或标点组合在一起的事实。之间。例如,巫师故事的粉丝可能会使用密码”Harry + Ginny” ,其中密码比单独使用”Harry” 或”Ginny” 强得多(除非有人知道你喜欢这些角色)。它还会改变中间的标点符号,并在单词的开头使用大写字母。
  3. crack_password.py包含七个密码供您尝试猜测(程序中的变量password0到password6)。第一个(password0)显示为明文。这意味着您可以看到密码的真实价值,因此您可以轻松确认您的程序是否可以正确猜测。其他密码加密使用名为哈希的内容.Hashing接受一个词(或任何数据)并使用精确的数学运算将其转换为(看似)乱码的数字和字母系列。此操作可重复 – 它将始终为您提供完全相同的答案 – 但几乎不可能反过来执行此操作。它也是唯一,意味着任何两个不同密码的哈希值永远不应该相等。这意味着,为了测试两个密码是否匹配,您可以比较它们的哈希值而不是它们的明文。声音混乱?别担心。阅读crack_password.py中的代码和注释,您将更好地理解该过程。如果要了解有关该主题的更多信息,请在Web上搜索”MD5哈希” (MD5是此项目中使用的特定哈希算法)。
  4. 在IDLE中打开crack_password.py。如果您正确安装了Python,则计算机上应该有IDLE的桌面或开始菜单图标。您也可以右键单击该文件(在Windows上),然后选择”使用IDLE编辑” 。不要只是双击crack_password.py,否则它可能无法正常运行。
  5. 阅读代码并阅读评论。这是一个很大的计划,所以一开始看起来似乎势不可挡。如果您不了解每一行代码,请不要担心。
  6. 向下滚动到程序底部的”main” 功能。您可以在此处设置password0的值。将其保留为现在的默认值。
  7. 运行程序。在IDLE中,选择Run→Run Module,或按F5。
  8. 应该打开一个新窗口(Python”shell” )。按照屏幕上的提示运行该程序。告诉程序猜测密码0并观察输出。它的猜测是否与”main” 函数中为password0设置的值匹配?
  9. 该程序使用哪四种方法成功猜出密码?在crack_password.py中查看该方法的代码。你能理解该算法是如何找到密码的吗?
  10. 尝试将password0更改为其他内容(如注释中所述,请记住在程序底部的”main” 函数中执行此操作,而不是在程序顶部初始化变量时),如单词来自passwords.txt。保存crack_password.py,再次运行程序,然后选择密码0.输出如何变化?这次哪个方法找到密码?
  11. 尝试运行密码1-5的程序。示例代码应该能够猜测这些密码而无需任何修改。每次都检查代码的输出。哪个算法找到了密码?你明白了吗?
  12. 示例代码将猜测密码6而不做一些更改。您需要修改现有算法或编写自己的算法。以下是您可以尝试的一些想法:
    1. 修改方法2以包括除数字和字母之外的标点符号。
    2. 修改方法3,尝试将整个单词大写,使用交替的大写/小写字母或拼写向后的单词。
    3. 修改方法4尝试组合三个单词而不是两个单词。
    4. 尝试组合不同的方法。例如,将方法1和2结合起来尝试单词后跟数字。

  13. 示例代码测量使用每种方法查找密码所需的尝试次数和持续时间。您是否可以更改代码以提高效率并更快地找到密码?
  14. 如果您的程序出错或者您不理解某些内容,则需要尝试调试。以下是一些可帮助您调试程序的提示:
    1. 仔细阅读错误消息。它们可能是指行号,因此您可以在程序中的特定位置查找问题。您还可以尝试将错误消息的文本复制并粘贴到搜索引擎中。您可以找到一些有关该错误消息的帮助文档或论坛帖子。
    2. 将”print” 语句添加到程序中以显示特定点的输出或变量值。示例程序已包含许多默认注释掉的打印语句。您可以取消注释它们以打印每个密码猜测。这将使程序减慢很多,但可以帮助您了解每种搜索方法的工作原理。
    3. 使用”输入” 行(”按Enter继续。” )’暂停程序直到按Enter键。如果shell窗口中的输出发生得太快,你无法理解发生了什么,这可以帮助你减慢程序的速度。
    4. 调试时,一次只更改一行代码,然后再次运行程序。如果您一次更改多行,您可能不知道导致(或摆脱)错误消息的原因。

  15. 一旦你破解了六个密码中的一个,你就可以去 Science Buddies密码测试网站。这是一个简单的网站,确认您已正确猜到我们的密码之一。如果您不在真实网站上试用密码,猜测密码的乐趣是什么?
  16. 尝试使用您认为难以破解的密码,或者考虑一个想到密码的朋友。在程序中输入密码0的密码。你的算法可以破解密码吗?需要多长时间?
一个简单的流程图,显示如何画房子
图2. “钱箱” 密码算法的简单流程图,用于尝试将所有可能的三位数字作为密码。
 尝试将字对作为密码的算法的流程图
图3. 使用两个单词而不是一个单词是人们尝试智取黑客的一种非常常见的方式。此算法使用列表中的单词,但是将它们组合在一起,一次两个,中间使用不同的单个标点字符。

如果你喜欢这个项目,你可能会喜欢探索这些相关的职业:

计算机程序员

计算机是现代世界的必备工具,处理从交通控制,汽车焊接,电影动画,航运,飞机设计,社交网络到图书出版,商业管理,音乐混合,医疗保健,农业和网上购物等各个方面。计算机程序员是编写指令的人,告诉计算机该做什么。了解更多

计算机软件工程师

您是否有兴趣为计算机开发酷炫的视频游戏软件?您想了解如何在不同类型的计算机和操作系统上更快,更可靠地运行软件吗?你喜欢运用计算机科学技能来解决问题吗?如果是这样,那么您可能对计算机软件工程师的职业感兴趣。了解更多

数学家

数学家是古代传统的一部分,他们在严格演绎的基础上寻找模式,猜想和猜测真理。一些数学家专注于纯粹的理论问题,没有明显或直接的应用,除了促进我们对数学的理解,而其他人则专注于应用数学,他们试图解决经济学,商业,科学,物理或工程学中的问题。了解更多

统计员

统计学家利用数学和概率论的力量来回答影响数百万人生活的问题。他们告诉教育工作者哪种教学方法效果最好,告诉政策制定者新鲜水果中可接受的农药含量,告诉医生哪种处理效果最好,并告诉建筑商哪种类型的涂料最耐用。它们几乎适用于从工程,制造,医药到动物科学,食品生产,运输和教育等各种行业。每个人都需要统计学家!了解更多



变体形式

  • 如果您有自己的网络服务器或者想在计算机上添加一台服务器,请尝试编写一个可以”攻击” 您的程序的网站。对网站和攻击使用同一台计算机比通过互联网快得多,如果你闯入自己的计算机,这绝不是问题。
  • 查找其他单词列表或提出自己的单词列表,可以比我们的列表更快地猜测密码。
  • 尝试使用您认为很棒且无法猜测的密码,或者请朋友给您一个密码。看看你的程序猜测它需要多长时间。
  • 从短密码开始,猜测一个密码并一次添加一个字符。根据您之前的数学计算,时间的增加是否与您预测的相符?