手机本地收藏忘记无线密码忘记了怎么办怎么办

您现在的位置:&&&&&&& > 社保查询,忘记密码怎么办?
9:21:15 关注:27930
办事标签:
办事类别:&&&
办事单位:&&&
还有不明白的话,请直接求助
分享给你的好友:
2015年深圳小一,初一学位申请指南,提供2015年秋季新生入学报名指南...
深圳有哪些补贴可以申领?快来看看自己符合条件的补贴,马上动手申请吧
深圳生宝宝需要办理哪些证件?深圳生育保险如何报销?深圳产假和产假工资是如何规定的...
精彩专题推荐
本专题为2015深圳市小学学位申请指南...
2015年深圳小一学位申请最新消息,有...
汇深网 版权所有12935人阅读
移动App该如何保存用户密码?
这个实际上和桌面程序是一样的。
先看下一些软件是如何保存用户密码的:
我们先来看下QQ是怎么保存密码的:
参考:/archive/index.php?t-159045.html,
桌面QQ在2012的时候把密码md5计算之后,保存到本地加密的Sqlite数据库里。
再来看下手机淘宝是怎么做的:
参考:http://blog.csdn.net/androidsecurity/article/details/8666954
手机淘宝是通过本地DES加密,再把密码保存到本地文件里的,如果拿到ROOT权限,能破解出密码明文。
再来看下微软是怎么保存用户密码的:
参考:/tools/37162.html&
我实际测试了下,可以轻松得到所有帐号的密码明文。
再来看下Linux是怎么保存用户密码的:
参考:http://blog.csdn.net/lqhbupt/article/details/7787802
linux是通过加盐(salt),再hash后,保存到/etc/shadow文件里的。
貌似以前的发行版是md5 hash,现在的发行版都是SHA-512 hash。
linux用户密码的hash算法: /questions/439650/how-are-the-hashes-in-etc-shadow-generated
实际上是调用了glic里的crypt函数,可以在man手册里查看相关的信息。
可以用下面的命令来生成:
mkpasswd --method=SHA-512 --salt=xxxx
其中salt参数,可以自己设置,最好是随机生成的。
可以用 mkpasswd --method=help 来查看支持的算法。
用户密码该如何保存,还有能做到哪种程度?
看完上面一些软件的做法之后,我们来探讨下,用户密码该如何保存,还有能做到哪种程度?
假定本地存储的hash串/加密串,和加密算法,攻击者都可以得到,或者逆向分析到。
实际上也是如此,通过上面QQ和淘宝的例子,允分说明了加密串是可以得到的。Linux更是一切都是公开的,只要有权限就可以读取到,包括salt值,shah算法,(salt+密码) hash之后的结果。
防止攻击者得到用户密码的明文。这个实际上是从用户的角度出发,即使数据泄露了,影响降到最低。防止攻击者拿到hash串或者加密串之后,一直都可以登陆。这点对于移动设置是很重要的,比如今天用户连到了一个恶意的wifi,如果攻击者截获到请求,要防止攻击者潜伏几天,或者几个月之后的攻击。必须要让请求的凭据在一天或者几天内失效。
加盐(salt)
假如不加盐,那么攻击者可以根据同样的hash值得到很多信息。
比如网站1的数据库泄露了,攻击者发现用户A和用户B的hash值是一样的,然后攻击者通过其它途径拿到了用户A的密码,那么攻击者就可以知道用户B的密码了。
或者攻击者通过彩虹表,暴力破解等方式可以直接知道用户的原来密码。
所以,每个用户的salt值都要是不一样的,这点参考linux的/etc/shadow文件就知道了。
客户端本地存储密码的算法
应该用哪种算法来存储?
从上面的资料来看,手机淘宝是本地DES对称加密,显然很容易就可以破解到用户的真实密码。QQ也是对称加密的数据库里,存储了用户密码的md5值。
显然对称加密算法都是可以逆向得到原来的数据的。那么我们尝试用非对称加密算法,比如RSA来传输用户的密码。
那么用户登陆的流程就变为:
客户端用公钥加密用户密码,保存到本地;用户要登陆时,发送加密串到服务器;服务器用私钥解密,得到用户的密码,再验证。
有的人会说,如果服务器的私钥泄露怎么办?
服务器端换个新的密钥,强制客户端下载新的公钥或者升级。
可以考虑有一个专门的硬件来解密,这个硬件只负责计算,私钥是一次性写入不可读取和修改的。搜索 rsa hardware,貌似的确有这样的硬件。
当然,即使真的私钥泄露,世界一样运转,像OpenSSL的心血漏洞就可能泄露服务器私钥,但大家日子一样过。
非对称加密算法的好处:
即使数据被盗,攻击者拿不到密码的明文如果发现有部分用户的数据被盗了(公钥加密后的数据),可以通过升级服务器和客户端的版本,让用户重新输入密码,用户还是原来的密码,但是攻击者却登陆不了了。对于安全要求严格的应用,还可以定期更新私钥,来保证用户的数据安全。
如何防止本地加密串泄露之后,攻击者可能潜伏很久?
这点实际上是如何让客户端保存的加密串及时的失效。
强制要求客户端保存的加密串一周失效;用户手机中病毒了,攻击者窃取到了加密串。但是清除病毒之后,用户没有够时的修改密码。攻击者是否会潜伏很久?发现某木马大规模窃取到了大量的用户本地加密串,是否可以强制用户的本地加密串失效,客户端不用升级,用户不用修改密码,也不会泄露信息?
下面提出一种 salt + 非对称加密算法的方案来解决这个问题:
用户填写密码,客户端随机生成一个salt值(注意这个salt只是防止中间人拦截到原始的password的加密串),用公钥把 (salt + password)加密,设置首次登陆的参数,发送到服务器;服务器检查参数,发现是首次登陆,则服务器用私钥解密,得到password(抛弃salt值),验证,如果通过,则随机生成一个salt值,并把salt值保存起来(保存到缓存里,设置7天过期),然后用公钥把(salt + 用户名)加密,返回给客户端。客户端保存服务器返回的加密串,完成登陆。客户端下次自动登陆时,把上次保存的加密串直接发给服务器,并设置二次登陆的参数。服务器检查参数,发现是二次登陆,用私钥解密,得到salt + 用户名,然后检查salt值是否过期了(到缓存中查找,如果没有,即过期),如果过期,则通知客户端,让用户重新输入密码。如果没有过期,再验证密码是否正确。如果正确,则通知客户端登陆成功。如果发现某帐户异常,可以直接清除缓存中对应用户的salt值,这样用户再登陆就会失败。同理,如果某木马大规模窃取到了大量的用户本地加密串,那么可以把缓存中所有用户的salt都清除,那么所有用户都要重新登陆。注意用户的密码不用修改。第2步中服务器生成的salt值,可以带上用户的mac值,os版本等,这样可以增强检验。
注意,为了简化描述,上面提到的用户的password,可以是先用某个hash算法hash一次。
具体的登陆流程:
浏览器登陆的流程:
浏览器的登陆过程比较简单,只要用RSA公钥加密密码就可以了。防止中间人截取到明文的密码。&
App登陆保存数据流程
App因为要实现自动登陆功能,所以必然要保存一些凭据,所以比较复杂。&
App登陆要实现的功能:&
密码不会明文存储,并且不能反编绎解密;&在服务器端可以控制App端的登陆有效性,防止攻击者拿到数据之后,可以长久地登陆;&用户如果密码没有泄露,不用修改密码就可以保证安全性;&可以区分不同类型的客户端安全性;比如Android用户受到攻击,只会让Android用户的登陆失效,IOS用户不受影响。&
App第一次登陆流程:
用户输入密码,App把这些信息用RSA公钥加密:(用户名,密码,时间,mac,随机数),并发送到服务器。&服务器用RSA私钥解密,判断时间(可以动态调整1天到7天),如果不在时间范围之内,则登陆失败。如果在时间范围之内,再调用coreservice判断用户名和密码。&
这里判断时间,主要是防止攻击者截取到加密串后,可以长久地利用这个加密串来登陆。&
如果服务器判断用户成功登陆,则用AES加密:(随机salt,用户名,客户端类型,时间),以(用户名+Android/IOS/WP)为key,存到缓存里。再把加密结果返回给客户端。&客户端保存服务器返回的加密串&
App自动登陆的流程:
App发送保存的加密串到服务器,(加密串,用户名,mac,随机数)==&RSA公钥加密&服务器用RSA私钥解密,再用AES解密加密串,判断用户名是否一致。如果一致,再以(用户名+Android/IOS/WP)为key到缓存里查询。如果判断缓存中的salt值和客户端发送过来的一致,则用户登陆成功。否则登陆失败。&
不用AES加密,用RSA公钥加密也是可以的。AES速度比RSA要快,RSA只能存储有限的数据。
其它的一些东东:
多次md5或者md5 + sha1是没什么效果的。
RSA算法最好选择2048位的。搜索& rsa 1024 crack&有很多相关的结果,google已经将其SSL用的RSA算法升级为2048位的。
如何防止登陆过程的中间人攻击,可以参考,魔兽世界的叫SPR6的登陆算法。
对于网页登陆,可以考虑支持多种方式:
不支持JS的,用原始密码登陆。支持JS的,可以考虑传递hash算法加密字符串。严格要求的应用,最好用JS实现RSA加密。在github上找到的一个JS RSA库:/travist/jsencrypt客户端应用,一律应当用RSA算法,并加盐来保存用户密码。单纯的hash或者对称加密算法都不靠谱。
服务器用salt(存数据库的) + hash算法来保存用户的密码。
用salt(存缓存的,注意和上一行的salt是不同的)+ RSA算法来加密用户登陆的凭证。
这样服务器可以灵活控制风险,控制用户登陆凭据的有效期,即使用户数据泄露,也不需要修改密码。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:523256次
积分:6501
积分:6501
排名:第1771名
原创:118篇
转载:29篇
评论:166条
(2)(1)(1)(7)(2)(4)(1)(3)(7)(12)(3)(3)(6)(3)(3)(8)(3)(1)(9)(7)(2)(4)(4)(5)(2)(2)(1)(4)(5)(1)(8)(17)(1)(4)(1)(2)您所在的位置: &
MySQL忘记密码的正确解决方法
MySQL忘记密码的正确解决方法
此文章主要讲述的是MySQL忘记密码的正确解决方法,相信如果你掌握了这项技术,会在以后的学习或是工作中带来很大的帮助。
以下的文章主要介绍的是忘记密码的正确解决方法,在实际操作中如果你忘记MySQL密码是一件很头痛的事情,这篇文章主要是介绍对MySQL忘记密码的补救方案,以下就有详细内容描述,望你会有所收获。
MySQL忘记密码解决方案:
破解本地密码:
1.用系统管理员登陆系统。
2.停止MySQL的服务。
3.进入命令窗口,然后进入 MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bin
4.跳过权限检查启动MySQL,
c:\mysql\bin&mysqld-nt &&skip-grant-tables
或则:c:\mysql\bin&mysqld &&skip-grant-tables
mysqld.exe是微软Windows MySQL server数据库服务器相关程序。mysqld-nt.exe是MySQL Daemon数据库服务相关程序。
MySQL忘记密码解决方案5.[未验证]
重新打开一个窗口
进入c:\mysql\bin目录,设置root的新密码
c:\mysql\bin&mysqladmin -u root flush-privileges password &newpassword&
c:\mysql\bin&mysqladmin -u root -p shutdown
将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。
5.[验证]或则:
重新开打一个命令提示符的窗口(CMD)
用空密码方式使用root用户登录 MySQL;
mysql -u root
修改root用户的密码;
mysql&update&mysql.user&set&password=PASSWORD('新密码')&where&User='root';& &mysql&flush&& &mysql&quit&&
6.停止MySQL Server,用正常模式启动Mysql7.你可以用新的密码链接到Mysql 了。
Unix&Linux:
1.用root或者运行mysqld 的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用&skip-grant-tables参数启动MySQL Server
shell&mysqld_safe &skip-grant-tables &
4.为root@localhost设置新密码
shellmysqladmin&-u&root&flush-privileges&password&&newpassword&
5.MySQL忘记密码解决方案重启MySQL Server
MySQL修改密码的方法大全:
mysql&update&user&set&Password=password('newpassword')&where&User='root';& &mysql&flush&& &MYSQLADMIN&-u&root&-p&PASSWORD&mypasswd& &
可以修改MYSQL文件夹中的MY.INI文件
mysql&SET&PASSWORD&FOR&myuser@localhost&=&PASSWORD('mypasswd'); &mysql&GRANT&USAGE&ON&*.*&TO&myuser@localhost&IDENTIFIED&BY&'mypassword'; &
以上的相关内容就是对MySQL忘记密码解决方案的介绍,望你能有所收获。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
MySQL是完全网络化的跨平台关系型数据库系统,同时是具有客户机/
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
暮春三月,京师草长,杂花生树,群莺乱飞。ChinaHadoo
MySQL 5.6.10已经发布,Oracle将其称之为MySQL 5.6正
51CTO将为您整理数据清洗方面的技术文章和相关资料,
《网管员世界》是国内唯一一家专门面向网管员职业的刊物。本书是2006年《网管员世界》各期内容的汇集,内容权威、全面、时效性强
51CTO旗下网站您所在的位置: &
忘记密码咋办? 本地密码检索工具LaZagne Project
忘记密码咋办? 本地密码检索工具LaZagne Project
LaZagne project 是一款用于检索大量存储在本地计算机上密码的开源应用程序。每款软件他们保存密码的方法或许不尽相同(明文,API,算法,数据库等等),我开发这款工具的目的是为了寻找计算机中最常用软件的密码。
LaZagne project 是一款用于检索大量存储在本地计算机上密码的开源应用程序。每款软件他们保存密码的方法或许不尽相同(明文,API,算法,数据库等等),我开发这款工具的目的是为了寻找计算机中最常用软件的密码。截至目前,该工具支持Windows上的22款软件,Linux/Unix-Like OS上的12款软件。
使用方法:
启用所有模块
cmd: laZagne.exe all
启用特殊模块
cmd: laZagne.exe
example: laZagne.exe browsers
help: laZagne.exe -h
仅启动一个特殊软件脚本
cmd: laZagne.exe
example: laZagne.exe browsers -f
help: laZagne.exe browsers -h
将所有的密码写入文件(-w选项)
cmd: laZagne.exe all -w
注意:WI-FI密码/Windows密码需要启动管理员权限(UAC验证/sudo)
(*) 有些软件可能存在使用插件等方式保存密码:Chrome, Owncloud, Evolution, KMail
IE浏览器历史记录
IE浏览器密码(从IE7到早前的Windows8)只能使用网站URL进行解密,只是作为Win32CryptUnprotectData api的一个参数。因此,使用IE浏览器历史记录能够将密码破解出来。要做到这一点,我需要使用一个C语言编写的DLL(代码在browser_history_dll目录下)且作为一个Base64字符串直接嵌入python代码中。加载之后,DLL会写入磁盘,其中一个包装类是用来调用DLL函数的然后这个DLL文件会从磁盘删除。
构建属于你自己的密码恢复脚本
你可以自由的为你选择的软件编写一个脚本。并且不用担心,编写一个模块十分简单。
要做到这一点,我们需要满足一些代码标准。
1.使用软件名创建一个类包含两个重要的函数:
init:用于定义启动类的所有参数
run:主函数
2.将类名和相关信息添加到config.manageModules.py文件
3.所有包含密码的输出都必须发送到&print_output&函数
举例:print_output(software_name, password_list)
4.可选项:你可以使用&print_debug& 函数打印出输出结果
5.也可以参考现有脚本,用以理解。
为了编译源代码,需要一些外部库
colorama( Windows扩展(安装pycrypto)
Impacket(/CoreSecurity/impacket)
对于Ubuntu 14.04
python-kde4 (Kwallet)
其他发行版
Python 2.7
dbus (Pidgin)
python-kde4 (Kwallet)
项目地址:/AlessandroZ/LaZagne【编辑推荐】【责任编辑: TEL:(010)】
关于&&&&的更多文章
互联网作为一个开放的论坛,已经产生了一些安全方面的问题。互联
极棒嘉年华2015聚焦手机、智能穿戴等八大智能生活领域的安全问题。
讲师: 80人学习过讲师: 78人学习过讲师: 651人学习过
2015年RSA安全大会以改变( Change: Challenge today's
近日大量社保系统相关漏洞出现在补天漏洞响应平台,网
即将于首都网络安全日'期间举办的网络与信息
本书依据最新版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点进行
51CTO旗下网站大家正在求推荐
&·&·&·&·&·&·
&(23 人参与)
&(58 人参与)
&(5 人参与)
&(2 人参与)
&(0 人参与)
第三方登录:}

我要回帖

更多关于 忘记wifi密码怎么办 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信