如何在网页中自动无法输入用户名名和密码,然后将查询到的用户信息记录下来?

网上银行常见问题及解答
网上银行常见问题及解答
安全控件安装及使用
证书下载及安装使用
网银登录操作
1、“网银管家”适用于我行哪些网银版本?
我行所有个人网银、企业网银版本均可以使用我行“网银管家”。
2、“网银管家”能帮助我做些什么?
通过“网银管家”,您可以使用一键修复功能,来安装网银安全控件,网银证书链和U-KEY驱动程序、优化调整您的 IE 浏览器设置等问题,有效节省您的宝贵时间,它可以帮助您更顺利地登录网上银行。
3、“网银管家”为我的电脑做了哪些优化设置?
“网银管家”自动为您安装网银安全控件,网银证书链,以及U-KEY驱动程序,帮助您清除浏览器缓存和SSL缓存状态,自动将我行网银地址加入可信任站点。“网银管家”同时检测您的host文件是否有被篡改以及系统权限设置。
4、“网银管家”对我的电脑消耗资源大吗?是否会使运算速度变慢?
“网银管家”程序运行时占用很少的系统资源,不会影响您电脑正常运行。如果您经常使用网银,建议您将“网银管家”缩小至系统托盘后台运行。
安全控件安装及使用
1、 点击登录后,页面提示“验证签名错”。
为了保证您安全使用我行网上银行,初次登录时,均需要安装安全控件。如果多次安装安全控件无效,请按照如下安装步骤手工安装安全控件:
1、 先手工下载安装包:使用IE浏览器,请使用非IE浏览器请,(支持Chrome,FireFox,Safari)。使用Mac OS X环境Safari浏览器请,(支持Mac OS X环境Safari,)。
2、 请根据安装程序提示,逐步进行。安装成功后,即可登录网银。
2、 我登录网银时浏览器并未弹出任何提示控件安装信息,该如何解决?
如果您的浏览器安全级别设置较高,系统可能无法自动弹出提示安装窗口,您可以通过方式进行安装控件,请参照问题3。
3、 我在登录网银时浏览器自动下载控件总是安装不成功,该如何解决?
为了保证您安全使用我行网上银行,初次登录时,均需要安装安全控件。如果多次安装安全控件无效,请按照如下安装步骤手工安装安全控件:
1、 先手工下载安装包:使用IE浏览器,请使用非IE浏览器请,(支持Chrome,FireFox,Safari)。使用Mac OS X环境Safari浏览器请,(支持Mac OS X环境Safari,)。
2、 请根据安装程序提示,逐步进行。安装成功后,即可登录网银。
4、 我的电脑操作系统是Windows Vista、Windows 7,已经成功安装控件,但为什么不能使用键盘输入密码?
点击“程序”,右键单击IE程序图标,选择“以管理员身份运行”开启IE(见下图),重新登录网银,即可使用键盘输入密码。
5、 我的电脑操作系统是Windows Vista、Windows 7,为什么每次安装签名控件都报错?
安装签名控件时需要把所有浏览器窗口关闭,若有浏览器窗口开着,可能会报以下错误:
6、 我已经成功自动安装网银控件,但登录网银时仍然提示我需要安装,该如何解决?
1、 清理IE缓存。以IE8为例,请点击“工具”,选择“删除”,勾选“Internet临时文件”,点击“删除”按钮进行清理。
2、 设置浏览器每次访问页面时检查新版本。以IE8为例,请点击“工具”,选择“设置”,勾选“每次访问页面时”,点击“确定”。
证书下载及安装使用
7、 我的电脑操作系统是Windows2000、WindowsXP,在安装U-KEY驱动程序过程中不小心误装了供 Windows98的补丁,导致智能卡管理工具不能正常安装或运行,请问是什么原因?如何解决?
这是由于供Window98使用的补丁会破坏Windows2000和WindowsXP平台上的智能卡服务,导致智能卡不 能正常工作。 您需要根据您的操作系统版本选择下载相应解决方法,并按照说明完成操作即可。
8、 我的移动证书(U-KEY)被锁定了,后续该如何操作?
为了保证您安全的使用网上银行,当您的浦发银行移动证书(U-KEY)的密码被连续输错三次,则移动证书(U-KEY)将会被锁定。锁定之后您需要进行以下几步操作,来重新使用网上银行:
1、 通过U-KEY客户端管理工具进行U-KEY的初始化操作,初始化时需重新设置移动证书(U-KEY)的密码,初始化完成后,U-KEY中的所有内容都将被清空。
2、 您需要并携带本人有效身份证件和银行卡至我行任一营业网点办理更新证书业务。
3、 访问,点击“首次登录”,并在此过程中重新将数字证书下载到您的U-KEY中。
完成首次登录之后,就可以重新使用网上银行了。
9、 我下载用户证书时,系统报错“The error: 1B6 occurred in generating certificate request”,怎么办?
您需要根据您的操作系统版本安装安全补丁程序:
10、 我的电脑操作系统是Windows Vista或Windows 7系列,在首次登录证书下载过程中流程中断,该如何解决?
您需要按以下流程进行操作,以完成证书链和Vista驱动程序的下载安装。
1、 证书链下载安装:请
证书链整个安装流程如下所示:
(1) 点击上方下载链接后会弹出如下对话框:
(2) 将b_Cert.zip文件下载并保存至本地后,解压缩到任一目录。在该目录下,双击文件Root_CA.cer。
(3) 点击“安装证书”,出现证书导入向导窗口。
(4) 在证书存储中选择“将所有的证书放入下列存储”,点击浏览。
(5) 选择证书存储在“受信任的根证书颁发机构”区域中,并点击“确定”。
(6) 点击“下一步”继续。
(7) 点击“完成”。
(8) 系统会提示证书安装安全警告,请选择“是”。
(9) 证书链安装成功
2、 Vista驱动程序下载安装:
(1) 先访问:;(点击链接,直接进行压缩包下载)
(2) 打开压缩包,运行vista.exe文件;
(3) 安装成功后按“close”即可。
3、 检查您的电脑是否已成功安装上述两个程序:
(1) 点击您IE浏览器“工具――Internet选项――安全”,选择“可信站点”,不要选中“启用保护模式”项前的选项框;
(2) 点击上述页面的“站点”,检查系统是否已将“.cn”和“.cn”两个站点列为可信站点;若系统未将这两个站点列为可信站点,请手动进行添加。
11、 我的电脑昨天还可以正常使用U-KEY登录,今天就无法正常登录了,怎么办?
这可能是由于您最近使用了系统管理工具进行了自动清理,将U-KEY驱动程序强制卸载所导致的问题。请按照如下步骤重新安装证书驱动程序:
&&请根据您的U-KEY证书类型,点击下载相应的证书驱动程序,解压缩后完成安装。
握奇(液晶型)
天地融(液晶型)
天地融(普通型)
编码规则:
编号以“WL”字母开头的U-KEY。
编码规则:
编号以“TL”字母开头的U-KEY。
编码规则:
编号以“TD”字母开头的U-KEY。
编码规则:
编号以“FT”字母开头的U-KEY。
编码规则:
编号以“PD”字母开头的U-KEY。
&&安装完成后,请将U-KEY移动证书连接到计算机,系统将自动查找设备直至完成。
12、 点击“登录”按钮后,未出现登录页面。
这一般是由于您的浏览器设置了安全级别为“高”的弹出窗口拦截选项。点击“登录”后,在地址栏下,会出现“阻止了一个弹出窗口,要查看此弹出窗口或其他选项,请单击此处…”(如下图)。
单击此提示,选择“总是允许来自此站点的弹出窗口”。
之后,即可正常登录。
13、 在登录页面输入登录要素(客户号、密码等),点击“登录”后,页面弹出对话框“登录已失效 ,请重新登录”,同时页面提示“用户新登录,或联接已失效”。
该问题的出现与电脑的cookies设置有关。请打开浏览器窗口,点击“工具”→“Internet选项”, 选择“隐私”页,点击“编辑”按钮,在“网站地址”空格内填入:.cn/之后,点 击“允许”。或者您也可以在“隐私”页点击“默认”按钮,直接将隐私级别设为默认的“中”级。
14、 为什么我使用网银时,页面反应速度会随着点击次数增多变得越来越迟缓?
您需要安装如下浏览器补丁程序。
15、 客户号不容易记住,能用其他用户名,例如身份证号登录个人网银吗?
浦发银行个人网上银行动态密码版用户不仅可以用客户号登录网银,还可以随心所欲设置“登录昵称”,使用昵称与查询密码登录网银。您可在登录后,进入“安全设置-网银设置-登录昵称设置”设置一个方便您记忆的登录昵称。理财版用户不仅可以共用该登录昵称,同时还支持客户使用身份证号与查询密码进行登录。
16、 我的电脑操作系统是Windows Vista、Windows 7,以前用IE8可以正常登录网银,为什么我升级IE9后,页面排版和文字显示有问题?
如果您升级并初次打开IE9,未勾选兼容性视图,页面排版和文字显示会有些问题:
当出现上述情况时,请点击ALT键,然后点击“工具-兼容性视图”,网页显示即可恢复正常:
17、 我每次登录网银时,网银提示“登录已失效,请重新登录”或“验证码输入错误”,该如何解决?
1、 使用IE8版本以上访问网银的客户,在访问网银时请打开“兼容性视图”。设置步骤如下:
打开“兼容性视图设置”,将“.cn”添加至显示网站列表中,并按示图勾选选项。
访问网银时请确认已选中“兼容性视图”
2、 设置浏览器每次访问页面时检查新版本。以IE8为例,请点击“工具”,选择“设置”,勾选“每次访问页面时”,点击“确定”。
18、 查询密码是什么?和ATM密码一样吗?
我行对每个客户设置一个查询密码,客户登录网上银行、拨打电话银行查询自己名下所有卡、折的信息时,都使用这个密码。查询密码不同于ATM密码。若您不清楚自己的查询密码,可以拨打我行客户服务 热线咨询密码规则、获得自己的查询密码,或携带身份证至我行网点重新设置您的查询密码。
19、 在个人网银动态密码或理财版登录画面中,输入登录信息,并点击“登录”后,提示“验证码输入错误”
首先,请检查输入的验证码是否有误。验证码由小写字母和阿拉伯数字组成,共6位,中间没有空格 或任何其他符号。
若您确认输入无误,请注意您每次看到的验证码是否相同?若您每次看到的验证码都一样,请点击“工具”→“Internet选项”
“常规”页中“Internet临时文件”“设置”按钮
在“检查所存网页的较新版本”中,选择“每次访问网页时”。
如果您每次看到的验证码都不一样,而且您也正确输入了验证码,那么请按如下方法修改浏览器设置:请 打开浏览器窗口,点击“工具”→“Internet选项”,选择“隐私”页,移动滑动块或点击“默认”按钮 ,将隐私级别设为默认的“中”级。或者在“隐私”页中点击“编辑”或“站点”按钮,在“网站地址” 空格内填入:“*..cn”,之后,点击“允许”。
20、 我的浏览器版本是IE6,以前可以正常登录网银,为什么现在登录个人网银时提示“尊敬的客户,您可能正在使用IE6或以下版本浏览器访问我行个人网上银行系统。若您遇到无法正常访问的问题,建议登录微软官方网站(_.cn)升级您的浏览器版本。”?
我行个人网上银行不再支持IE6及以下的浏览器版本,请您下载并安装 后,再登录我行个人网上银行系统。
若您使用的是其他操作系统,请点击,根据您的操作系统版本下载并安装IE8浏览器。
请您在完成浏览器升级后立即重启您的操作系统,再登录我行个人网上银行系统。
21、 我的浏览器版本是IE6,现在登录个人网银时提示我升级到IE8版本,但是我通过IE6仍可以正常登录,还有升级的必要吗?
考虑到IE6在系统安全性及兼容性方面存在各种问题,我们仍建议您将浏览器升级至IE8(或以上)版本,并重启操作系统后,再登录我行个人网上银行系统。
22、 我的浏览器版本是IE9,为什么只能登录动态密码版,无法切换到理财版或者数字证书版?
建议您恢复您的浏览器默认设置,具体步骤如下:
1、清除IE缓存
在打开的网页中,选择浏览器中的“工具”,点击下拉菜单中的“Internet选项”,在“常规”页中选择“删除”。
2、设置每次访问网页时检查新版本
请点击“工具”→“Internet选项” ,选择“常规”页中“浏览历史记录”的“设置”按钮
在“检查所存网页的较新版本”中,选择“每次访问网页时”。
3、设置安全隐私默认
请点击“工具”→“Internet选项” ,选择“安全”页中的“将所有区域重置为默认级别”按钮
4、还原高级设置
请点击“工具”→“Internet选项” ,选择“高级”页中的“还原高级设置”按钮
若您在恢复您的浏览器设置后,仍无法点击登录数字证书版或理财版个人网银,建议您直接点击以下链接登录:
理财版地址:
证书版地址:
动态密码版地址:
信用卡地址:
此外,理财版用户也可通过非IE内核浏览器,如苹果SAFARI浏览器、谷歌CHROME浏览器或火狐FIREFOX浏览器,登录我行个人网银理财版。如何在网页中自动输入用户名和密码,然后将查询到的用户信息记录下来?
如何在网页中自动输入用户名和密码,然后将查询到的用户信息记录下来? 50
想自动从:& 用户名.txt&&& 密码.txt&&& 两个文本文件里面调取信息& 并且在网页中自动填入相应的位置,然后查询到该用户信息后自动记录在 用户信息.txt中。代码应该怎么写?
不区分大小写匿名
这是什么的登录器?
网页里很一般的登录页面
IE本身就有保存账户和密码的功能,在INTERNET选项--内容--自动完成-勾选“表单上的用户名和密码”打开输入账号密码后,不要清空IE缓存就是了。但是这样容易带来安全问题
我的意思是完全自动,不需要手动。信息全部自动填入,需要一个脚本程序。
可以在登录的时候用Sesstion["变量名"]=this.Tbx_User.T来保存登录信息
这是全局变量你可以在想要调用的地方比如label中加入 label.text=Sesstion["变量名"]
cookie 用户名密码是存在这里的
相关知识等待您来回答
编程领域专家您还未登陆,请登录后操作!
如何让网站自动记住用户名根密码?
时每次都输入用户名跟密码,请问有什么方法让它自动记住用户名跟密码,以后就可以自动登陆?
1.浏览器、工具、Internet选项、内容、自动完成
将“自动完成功能应用于”下面的4个都选中
2.登陆网站时
提示“是否不再保存密码”
同时勾“记住我的用户名”后再点登陆
大家还关注
“网络黑客”攻击我的电脑之&43&...
有拉手网的订单号怎么查物流 有拉手网的订...微信扫描二维码登录网页是什么原理,前后两个事件是如何联系的?
按投票排序
的答案,从回答可以看得出来他对技术细节并不了解。对前端开发有了解的同学随便开个 Firebug 看看登录过程的 Net 视图基本就能大概看清楚这个过程。我个人开发过程一般是和产品说,『你们提业务要求、交互方式、性能要求等就好,技术方案我们会综合开发时间、系统架构等因素考虑』。恰好我之前也花过几个小时做过类似的验证登录过程,这里作为探讨,把产品同学的回答做个引用,解释一下其中『不技术』的地方。1. 每打开一次页面的时候会随机生成一个含有唯一uid的二维码,每次刷新页面都会不一样(这个可以保证一个uid只可以绑定一个账号和密码,如果一个uid可以绑定多个账号和密码,那么很可能你的电脑会登陆别人的微信哦);确实返回了唯一 id,但目的是为了识别用户身份,而且实际上打开这个页面的时候浏览器已经和 Server 创建了一个长连接等待确认信息。查看
的源码可以看到,这个页面在加载完毕时,也已经把很多登录后才需要的相关资源都预先加载进来了,所以长连接等待登录用户得到确认后展示用户信息的速度很快,因为无需刷页面和加载头像外的其他资源。2. 当用户使用登陆后的微信扫描该二维码的时候,会将这个id和手机上的微信账号及密码绑定,并上传到服务器;先上个图:二维码样例:
,利用我查查之类的二维码应用可以得到类似这样的地址,但并不会自动打开该地址,微信客户端针对
开头的地址做了特殊处理,会自动获取相关信息并提示确认。 在手机版微信访问这个页面进行确认时,Server已经同时获得了客户端信息,并通过之前保持的长连接告知浏览器。3. 页面每隔1秒或2秒会get请求该id对应的微信账号及密码,如果id绑定上了微信账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。浏览器展示完长连接里包含的用户信息(头像等)后,会新开一个长连接等待客户端的确认操作,其 URL 类似
。从安全的角度来说,无论如何都不会让客户端获得微信帐号和密码的。要知道,密码这玩意腾讯自己都不敢保存(有兴趣的同学可以自行了解下 CSDN 明文密码泄露事件),肯定是不可能返回给浏览器的。而且从体感来看,怎么着都不可能是页面1-2秒轮询发起GET请求的,实际是通过堵塞等待的长连接,近乎实时的获得信息。 对于验证过程,Open API 一般是通过授权令牌(Token)来解决的,原理是当用户通过授权后,分配一个限定条件下的令牌(如限制本机访问、限制授权有效时间、限制同时登录设备数等),使获得授权的用户仅在有限的前提下能访问相关服务。 像计算机休眠后曾做的授权就自动收回了,这样就有效的避免了在别人电脑上(尤其是网吧)打开,但忘记关闭或退出这类安全问题了。同时,整个授权过程的验证部分在手机端进行,有效杜绝了 PC 上泛滥的各类木马、『安全工具』的监听,大大降低了帐号被盗的风险。所以说,核心过程应该是:浏览器获得一个临时 id,通过长连接等待客户端扫描带有此 id 的二维码后,从长连接中获得客户端上报给 server 的帐号信息进行展示。 并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护。
有人对这个存在疑问是因为,扫码登陆有那么一点点违背直觉。违背直觉的地方在于,电脑端是如何知道是哪个微信账号扫的它?传统的登陆方法都是我告诉(输入)登陆设备我的账号密码等信息,然后就登陆了。而这个是反过来的,微信扫码,信息(二维码)是从被登陆设备(电脑)往手机(微信)传的,违背直觉的地方就在这里。信息传递的方向是反的。然而多想一步就会明白,不管是手机还是网页端,都是和微信的服务器连接的。微信在扫到码后告诉微信的服务器它扫到的是哪一个码。服务器知道当前这个码是在哪一个网页上显示的,于是这两者就联系起来了。举个例子,比如你在街上看到一个美女,你不知道她的名字等联系方式,但你牢牢的记住了她的长像。然后你跑到公安局里去通过她的长相查到了她本人,公安局联系她本人说有个人要找她,最终你们取得了联系。这里公安局就是微信的服务器,你就是微信,她就是网页端。比喻不太恰当,凑合一下吧~值得注意的是这个过程中没有用户名密码等的验证。因为这是基于一个信任来登陆的:即服务器相信能用微信扫码的话,扫码人就拥有这个微信账号的所有权。微信在首屏也提供了从手机上退出网页登陆的功能,这样即使是别人拿着你的手机扫了码在他的电脑上登陆你的微信,你也可以发现。整个过程是没有逻辑漏洞的。
使用Fiddler抓包就可以看到了啊。Web页面保持长连接,微信点击登录后POST数据,Web页面捕获到进行加载用户列表等功能。就这么个流程啊。
诸多先贤告诉我们,不要挑起事端。诸多先贤还告诉我们,要说人话。签名表明了我的态度,那我就简单说几句,喂,就几句,不要抢我的稿子!1、你用浏览器打开的时候,微信给你随机分配了一个链接,【相当于给你开了间房,房号1024,注意,只给你房号,没给你钥匙】,用二维码包装着,并且设置了有效时间【10分钟你不进房间,就给你取消】。这里面没有用户什么事情,所以不存在UID(user ID),只是一个随机的字母和数字组合。2、二维码的转码规则是统一的,所以意味着,只要是个二维码扫描软件,谁都能拿到这个链接,微信可以扫出来,我查查也可以扫出来。3、所以拿到链接没有用,重要的是谁拿到链接,微信拿到了,就可以从微信客户端发一条信息给服务器,告诉服务器,现在是谁使用了某个链接,其他二维码扫描软件,不能和微信服务器通话,所以毫无价值。【你拿到了房号,就给酒店老板打个电话,说是我,老板就知道张三又来开房了,其他人没有老板电话,知道房号也没用】4、这时候,在你刚打开的浏览器窗口里面,就知道并显示了你的信息,理论上可以直接打开聊天窗口,但是为了不突兀不尴尬,微信选择再让你在手机上做一个确认操作。【你站到你的房间门口了,老板也知道你是张三了,并且把你的那个好基友也放到了你房间里,但是谁知道你基友会在房间里干点啥?如果他正好弯腰在捡肥皂,这时候恰好你后面有人经过,房门大开大家尴尬不尴尬?所以还是老板考虑周到,他要你在电话里确认一下才给你开门,你大可以等后面没人了再开门进去】5、好了,现在你可以进去好好享用你的基友了。
微信和airdroid都有扫描二维码登录的功能,实现略有差别。如果你用普通的二维码扫描工具扫描它们的二维码,微信得到一个网址,airdroid得到一个字符串,但是里面都会有一个唯一的ID,这一点是共同的。微信的方案是:在网页生成这个二维码的时候,网页就开始用ajax长轮询,对服务器请求这个UID的扫描记录,如果没有,在特定时长后(目前是27秒左右)会接到状态码408,表示应该继续下一次请求,如果接到201,那么就进入第3步什么时候有201呢,微信客户端一旦扫描了这个二维码,就会向解出来的网址发起请求,通知扫描成功(当然这个网址做了来源验证)。服务器一接收到这个请求,就从当前的查询长连接里面立即把201返回过去(如果一直没有请求,那么会在30秒内把408返回去,这就是1里面提到的两个状态码的由来)得到状态码201后,通知服务器,客户端由此也进入一个新的页面(就是那个要你点确认的按钮),原理跟上一步相同(长轮询)。这个时候你只要点击确认,服务器就开始给该客户端的用户进行自动登录,并把用户信息在这一步通过当前的某个上行的长轮询给返回出去。当然返回的方式不再是什么状态码了,而是header里面的Set-Cookie,咋就内容其实也相当于状态码:&error&&ret&0&/ret&&message&OK&/message&&skey&xxxx&/skey&&/error&这个时候浏览器就可以成功地用微信认可的任何一种认证方式(通过返回的skey和cookie里面的信息)来请求用户数据了。之所以要提一下airdroid,是因为它在有些地方是不同的,所以,扫描二维码登录这回事,在保证安全的情况下,实现方式是看你的想象力了。首先,扫描二维码只得到字符串而不是网址,避免了鉴权网址外泄其次,浏览器是能用web socket来和服务器进行通讯的,避免了长轮询(微信是考虑到中国用户的浏览器不支持ws的居多吧。这里可以顺便介绍一下微软的signalR方案,它可以根据客户端浏览器的支持情况进行自动从ws降到long pool,微信团信应该是看到这个需求没多大的意义,干脆直接用最原始的实现吧,毕竟不是做一个库)更多细节我就懒得跟踪了,哪天自己也有同样的需求再研究吧
这是“冲击-响应”式的验证机制腾讯现在网页上扔出一个随机数A客户端把这个随机数A和客户端自己的Auth Key一同返回腾讯利用A和Auth Key建立一个唯一的Session ID 按照 的说法,A直接承担了Session ID的职能,我想这是因为HTTPS保证了A不会让第三方看到,因此A是一个Secret然后网页版的微信走的是可靠的HTTPS附加说一个,腾讯很好,让采用了TLS1.2,TLS1.2可以抵御BEAST等早先TLS版本中出现的弱点如此就能确保正确的用户安全地使用了网页版微信
打开微信网页版,在浏览器生成二维码,二维码中包含登录信息和服务端给它生成了一个唯一标识码UUID,同时服务端监听服务端登录请求;html:&img id="loginQrCode" src=""&jslogin.js:window.QRLogin.code = 200; window.QRLogin.uuid = "3aea191f78ec42";在客户端使用扫一扫登录网页版时,此时uid已经登录且有访问授权码access_token信息扫描网页的二维码,获取到服务器生成的UUID,然后将access_token及UUID发送给服务端服务端验证通过后,生成登录授权码并且通知网页端网页端获得授权码后即可向服务器申请用户登录信息,完成登录原文地址:
排名第一的我觉得不对,二维码里面是不会包含uid的,只是一个随机不重复的数。微信扫描之后会把这个数跟服务器进行比对,肯定只有一个唯一的页面是相对应的,那么PC端就会有提示。这个当然是非常安全的,因为登陆验证是个闭环,是在微信跟服务器之间进行的,外界是无法知道真正的算法的。
这个我暂时没发现有人答对的,其实原理很简单:1. 每打开一次页面的时候会随机生成一个含有唯一uid的二维码,每次刷新页面都会不一样(这个可以保证一个uid只可以绑定一个账号和密码,如果一个uid可以绑定多个账号和密码,那么很可能你的电脑会登陆别人的微信哦);2. 当用户使用登陆后的微信扫描该二维码的时候,会将这个id和手机上的微信账号及密码绑定,并上传到login.服务器;3. 页面每隔1秒或2秒会get请求该id对应的微信账号及密码,如果id绑定上了微信账号和密码,那么就可以请求到账号和密码,就可以自动登陆了。如果大家感兴趣的话,可以继续往下看,我再补充两点:1. 其实扫描二维码登陆只是在一端未登录的情境下使用会非常方便,同时安全性非常高,因为账号和密码不会暴露给黑客,几乎不存在盗号的可能性,所以我们看到扫描二维码登陆已经使用到了腾讯qqPC客户端最新版本中。2. 手机扫描二维码登陆还解决了PC和电视端登陆输入麻烦的问题,尤其是电视端的账号和密码通常是要靠遥控器一个一个按出来,所以,扫描二维码登陆在电视端的登陆上也有了比较好的体现,乐视超级电视应该是首次实现这一功能。3. 如果PC端(或电视端,主要指乐视超级电视最新的系统中也加入了扫描二维码登陆功能)和手机客户端都同时保持登陆的情境下,并且都通过唯一id绑定,那么其中一端可直接远程控制另一端,未来在这一领域的产品想象空间非常大,例如,乐视播放页的1080P速递下载,以及腾讯手机管家的遥控PC离线的功能。
我猜是给每个人的二维码都包含unique的id,这样扫了二维码之后,连带账户信息一起发到服务器端,服务器拿到消息之后就能更新网页端了。我拿自己的快拍二维码扫了一下,发现是一个 这样的链接...每次登录的xxxxxxxx应该都不一样吧大概是这么一回事吧。
请参考我在CSDN回答的答案, 以及我的具体实现 www(dot)88jimo(dot)com楼上说随机数的显然是错误的, 随机数有碰撞的可能, uuid 或者 某个全局自增量 还差不多.扫码登陆是一个小概率事件. 不论long pull还是轮询还是web socket也好, 不是这个方案的key point, 只不过long pull 和web socket是更优化的一个选择而已.微信在上个礼拜正式公开 登陆API 内测, 可以参考以下页面:
抓个包什么都搞得清,没事看看我大中通用户中心,快速登录里照样支持微信扫码登录!
其实很简单,二维码内容就是一串识别字符串,存在数据库里,照了之后发给微信服务器核对,识别身份,登录页面采用 AJAX 监听,身份识别完成给浏览器发送登录 Cookie。WeCenter 程序自己也实现了一套方法,有兴趣的可以下载源码看看: 登录页面按微信图标就是扫码登录
在电脑上使用时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?
1、每次用户打开PC端登陆请求,系统返回一个唯一的uid,并将uid的信息绘制成二维码返回给用户。这里的uid一定是唯一的,否则就会造成你登陆了其他用户的账号或者其他用户登陆你的账号。
2、当用户使用登陆后的微信扫描该二维码的时候,会将这个uid和手机上的微信账号及密码产生的token进行绑定,并上传到。
3、WEB通过JS不断的向后端发起请求,查询有没有关于uid的登陆记录(uid和token是否存在于服务器上)。实现代码可以从微信页面获取:
function _poll(_asUUID) {
var _self = arguments.callee,
_nTime = 0;
_sCurUUId = _asUUID;
_logInPage("_poll Request Start, time: " + new Date().getTime());
_nTime = new Date().getTime();
type: "GET",
url: "https://login." + _sBaseHost + "/cgi-bin/mmwebwx-bin/login?uuid=" + _asUUID + "&tip=" + show_tip,
dataType: "script",
cache: false,
timeout: _nAjaxTimeout,
success: function(data, textStatus, jqXHR) {
_logInPage("_poll Request Success, code: " + window.code + ", time: " + (new Date().getTime() - _nTime) + "ms");
switch (_aoWin.code) {
_sSecondRequestTime = new Date().getTime() - _sSecondRequestT
_logInPage("Second Request Success, time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
$.get(_aoWin.redirect_uri + "&fun=new", function(msg) {
_logInPage("new func reponse, reponseMsg: " + msg);
_reportNow("new func reponse, reponseMsg: " + msg);
var code = msg.match(/&script&(.*)&\/script&/);
eval(code[1]);
$("#container").show();
$("#login_container").hide();
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Success, uuid: " + _asUUID + ", time: " + _sSecondRequestTime + "ms");
clearTimeout(_oResetTimeout);
show_tip = 0;
$('.errorMsg').hide();
$('.normlDesc').hide();
$('.successMsg').show();
_logInPage("First Request Success");
_reportNow("/cgi-bin/mmwebwx-bin/login, First Request Success, uuid: " + _asUUID);
setTimeout(function(){
_logInPage("Second Request Start");
_reportNow("/cgi-bin/mmwebwx-bin/login, Second Request Start, uuid: " + _asUUID);
_sSecondRequestTime = new Date().getTime();
_nAjaxTimeout = 5 * 1000;
_self(_asUUID);
setTimeout(function(){
_self(_asUUID);
_afterLoadWebMMDo(function(){
_aoWin.Log.d("500, Login Poll Svr Exception");
error: function(jqXHR, textStatus, errorThrown) {
if (textStatus == 'timeout') {
setTimeout(function(){
_self(_asUUID);
setTimeout(function(){
_self(_asUUID);
_logInPage("_poll Request Error:" + textStatus);
_afterLoadWebMMDo(function(){
_aoWin.Log.e("Login Poll Error:" + textStatus);
网页客户端每500毫秒就向服务器发起ssl请求,请求当前二维码的登陆信息,如果返回结果201,则说明已经获取扫描二维码终端相同的账号登陆授权,当返回其他结果时,将在500毫秒之后重新发起请求。
类似微信登陆场景应用场景还是很多,比如通过二维码进行设备间的授权。比如使用手机遥控 装有android系统的电视盒等。
简单的说,原理就是将同一账号在 手机APP(微信)中 的登陆状态 共享 给 网页 使用。二维码中只包含需要的共享帐号信息(不含密码);手机拍摄二维码后将手机中的帐号、登录态提交到服务器;服务器校验后存储在统一的登陆态SESSION节点中;网页通过在SESSION读取相应的需要登录的帐号信息。具体的技术流程是基于Kerberos协议,通过二维码传递手机端的登录Ticket给网页:1.根据时间戳、路由和SALT指等参数生成一个随机的唯一uid,到服务器请求生成二维码图片,这个uid是登录流程的唯一标识,不可伪造,串联整个登录流程,另外,二维码的生成和访问都是通过SSL安全通道完成的;2.网页获取到二维码,用这个唯一的uid和server建立长连接;3.手机照一下也就是App扫描二维码时,手机绑定用户的uin和从二维码中获取到的uid;4.手机也就是App中点击确认,根据手机的登录态生成Ticket,和uin、uid等参数传递给登录服务器;5.登录服务器校验登陆态无误后,更新到通过uid指定的session节点,将结果通过长连接传递给网页,或者由网页定时查询session的指定位置获取是否登录;6.网页校验ticket确认登录;
每隔一段时间进行请求服务器,返回201 表示成功 408失败这是我观察的包前3个都是我等待状态,最后一个我扫了,返回了201。服务端唯一标识验证不解释。
看着答案最后就变成讨论到底是长连接还是轮询的问题,然后就偏了,其实具体用什么技术在这里不是特别重要(长连接也好、Server-Sent Event也好、WebSocket也好、轮询也好,这些都只是途径),提主想知道的是这两个事件是怎么联系的。表面上的步骤如下:[电脑] 打开,得到二维码[手机] 点开扫一扫,扫描PC端二维码,并且扫描成功[电脑] 提示扫描成功,[手机] 询问是否确认登陆[手机] 确认登陆(如果不确认登陆么,[电脑]就还是那样)[电脑] 跳转其实对应的内部机制差不多是这样的:电脑请求网页后,微信服务器生成一个唯一的ID(这里是UUID)给客户端网页,客户端定时发起向微信服务器的连接(这里类似于轮询),微信服务器保持这个连接(这里类似于长连接),保持一段时间(大概27秒)返回一个“还没人扫码”的标识,于是客户端再开连接手机微信扫码并解码,解码出来是一个URL也好,是一段文本也好,总之这段东西匹配了手机微信登陆网页版的要求,于是手机微信带着解码出来的信息去请求微信服务器。这里就已经达到了特定微信账号和某个特定网页相关联的目的电脑这里微信服务器马上在长连接中返回“有人扫码了”的表示并结束连接,网页提示扫描成功,然后打开长连接等待确认登陆的标识;手机这里么则根据二维码的信息打开对应网页确认登陆后面其实和前面一样了,手机微信确认登陆的其实就是请求服务器说这个可以登录了,然后服务器给网页的长连接中返回可以登录的标识并结束长连接,然后跳转到消息网页就算是单一的长连接也是可以的,流程差不多;就算是轮询又怎么样呢(当然服务器开销会大总所周知),大不了就是等到某一条请求下来发现是“有人扫码”然后接下去某一个请求下来是”确认登陆“而已。这个流程其实是主要的,至于用什么技术是次要的,用什么技术只是手段而已,假设微信这个网页登陆是出现在5年后,那微信肯定会去用标准化的WebSocket。真要讨论的话,微信最后那个还可以不跳转,做成单网页的,这就没有什么讨论的意义了。
学习了 第一看见是 淘宝支付 时候,出现手机支付 扫下手机支付开始了,当时懵了,现在才明白
虽然说不清楚具体的原理,但我可以肯定这里面没有什么高深的技术,因为我所带领的开发团队前段时间模仿过这个功能,已经用在了公司业务系统的登录上,安卓版和iOS版都做出来了,也没用多长时间。具体的技术细节我没有关注,但是我们是一个小公司的小团队,水平也一般,没觉得这个有难度,对大公司来说应该都不算个事。

我要回帖

更多关于 无法输入用户名 的文章

 

随机推荐