前两天我打开邮箱一看。收到公司1331一封要求改动邮箱password的邮件。

为什么我们须要一个复杂的password呢?尽管我一直以来设置的password都非常复杂。可是公司这次要求改动password的邮件激发起我的好奇心,我想试试到底什么样的password才算安全?

常见password破解方式有两种。一种是字典式破解,一种是暴力破解。曾经电脑处理器速度较慢,内存也非常小,因此为了加快破解速度,黑客经常使用字典式破解。所谓字典式破解就是首先将经常使用的password、英文单词、中文拼音等存储在一个文本文件中,然后採用程序挨个測试。一旦通过则停止。常见的password有admin、1234、pass1234、password、888888、518518等等。

比如有人将银行卡password设为“888888”或者“999999”等所谓吉祥的数字组合。假设有人盗了你的银行卡,去ATM机測试几次。非常快就能将您银行卡里的金额所有转走。

第二种是暴力破解。

当字典式破解不成功后,黑客就会採用暴力破解。

所谓暴力破解就是将数字、字母等各种进行穷举。挨个測试。与字典式破解不同的是。暴力破解的数据量通常相当大。

以8位纯数字password为例,暴力破解的数据量达到1080,即一亿组password。而包括数字和字母组合的。暴力破解的数据量达到368。大约2.8万亿组password,而假设是区分大写和小写字母的password组合则达到628组。大约218万亿组password。

password每添加一位。password组合则曾几何级数增长。

近期在船上时间比較多。于是我用Ruby写了一小段程序。模拟了一下password破解所须要的时间。我測试程序所用的笔记本处理器是Intel Core i5 2.4GHz,内存为8G 1600MHz。为了模拟真实的使用环境,我的測试方法是首先随机生成一个纯数字的8位数password,然后利用程序模拟暴力破解password。经过几次測试,破解8位纯数字password的平均速度为2分半钟左右。

所以您的password假设是由等于或低于8位的纯数字组成,即便加上网络延时,破解时间也不会超过一个小时。

公司IT部门建议的password为:PaSs1234或p!ss1234或Pass!$#%。

对于暴力破解来说第一个,即PaSs1234则共同拥有2.8万亿组password。可是对于字典破解来说。能够尝试pass和1234的组合,如Pass1234、Pass1234、PaSs1234非常easy猜解。

第二个password。p!ss1234。尽管仅仅是将a换成感叹号,可是由于这个p。ss不属于单词,并且“。”一般会与“~!@#¥%……&*”等一起列为特殊符号。所以这样类似的password组合至少有408种,即256万种组合,配合字典破解所需时间不会超过10分钟。最后一种password,前面能够配合字典破解。后面4位用暴力破解。大约有2700万组。破解难度就非常大。并且也须要一定的技巧。

那么什么样的password才安全呢?当然是越长、越复杂越安全。

可是太复杂、太长的password不仅难记。用起来也不方便。对于上网经常使用的password。由于站点採用了限制登录次数以及使用验证码的方式避免了暴力破解式的攻击,所以您能够依据自己的情况,用数字、password、特殊字符等共同组成,如rNh#4915*。

为什么我们须要复杂的password的更多相关文章

  1. MySQL 改动用户password及重置rootpassword

    为数据库用户改动password是DBA比較常见的工作之中的一个.对于MySQL用户账户的password改动,有几种不同的方式.推荐的方式使用加密函数来改动password. 本文主要描写叙述了通过 ...

  2. ubuntu下一个rootusername入口mysql,如何查看username和password,如何改变rootpassword

    mysql -u root -p 按Enter键,提示时输入密码access denied......ues password YES/NO错误. 第一步: 然后,你需要输入/etc/mysql夹.然 ...

  3. 【Java编码准则】の #13使用散列函数保存password

    明文保存password的程序在非常多方面easy造成password的泄漏.尽管用户输入的password一般时明文形式.可是应用程序必须保证password不是以明文形式存储的. 限制passwo ...

  4. php生成随机password的几种方法

    文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/523 使用PHP开发应用程序,尤其是站点程序.经常须要生成随机password,如用户注冊 ...

  5. ArduinoYun教程之配置Arduino Yun环境

    ArduinoYun教程之配置Arduino Yun环境 配置Arduino Yun 不管你使用前面介绍的哪种方式连接Arduino Yun.如今都能够配置你的Arduino Yun了.首先须要的是使 ...

  6. Mac中使用svn进行项目管理

    Mac中使用svn进行项目管理,借鉴了http://blog.csdn.net/q199109106q/article/details/8655204 下面方案多人亲測可用 转载请注明出处:http: ...

  7. AccountManager使用教程

    API解读 这个类给用户提供了集中注冊账号的接口.用户仅仅要输入一次账户password后,就能够訪问internet资源. 不同的在线服务用不同的方式管理用户,所以account manager 为 ...

  8. 初识Mongodb之[CURD]-PHP版

    行动 在了实践之前,希望大家看一下上面的学习资源,了解一下基本操作. 数据连接初始账号password 账号:admin password:admin 首先我们建立一个文件:mongodb.php,设 ...

  9. iOS8互动的新通知

    iOS8一旦远程通知想必大家都很熟悉.不要做过多的描述在这里,直接推出iOS8交互式远程通知. 再看互动的通知电话,显示的形式                  如今来看一下详细实现方式 一.通过调用 ...

随机推荐

  1. [Project Euler 429] Sum of squares of unitary divisors(数论)

    题目链接:https://projecteuler.net/problem=429 题目: 我们称 N 的约数 d 为特殊的当且仅当 gcd(d, n / d) = 1. 设 S(n) 为 n 所有特 ...

  2. 单表的更新UPDATE和删除记录DELETE(二十六)

    当把记录写成功之后,也许我们还会如下操作.比如,记录在书写的过程中字段是错误的.或者,我们想改下字段值.那么,我们需要update关键字. update分为单表更新和多表更新. 一.UPDATE语句 ...

  3. spring cloud集成 consul源码分析

    1.简介 1.1 Consul is a tool for service discovery and configuration. Consul is distributed, highly ava ...

  4. OpenGL编程逐步深入(五)Uniform 变量

    准备知识 在这个教程中我们会遇到一种新的Shader变量类型,即uniform变量.attribute(属性)变量和uniform变量的不同之处在于attribute 变量中包含顶点的具体数据,当每次 ...

  5. 洛谷P2197 nim游戏模板

    Code: #include<iostream> using namespace std; int main(){ int t; cin>>t; while(t--){ int ...

  6. CMD和AMD的区别

    CMD和AMD俩者之间的区别 AMD和CMD最大的区别是对依赖模块的执行时机处理不同 CMD和AMD都是CommonJS延伸而来的,CommonJS是随着node的出现而出现的,它是一个规范,用于定义 ...

  7. Element UI的Table用法

    Table 表格 用于展示多条结构类似的数据,可对数据进行排序.筛选.对比或其他自定义操作. ¶基础表格 基 2016-05-02 王小虎 上海市普陀区金沙江路 1518 弄 2016-05-04 王 ...

  8. python IO编程-序列化

    原文链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143192607 ...

  9. 【VK Cup 2015 - Finals D】Restructuring Company

    [题目链接]:http://codeforces.com/problemset/problem/566/D [题意] 给你n个人; 一开始每个人都隶属于一个部门; 之后给你q个操作; 3种操作类型; ...

  10. Spring Boot学习总结(1)——Spring Boot入门

    摘要:Spring Boots是为了帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用. 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boo ...