java扫描二维码,java扫二维码获取数据
00-1010
二维码发展简史
在了解二维码的技术原理之前,我们先简单了解一下它是如何发展起来的。早在1948年,伯纳德瑟沃就是费城气体技术学院的一名研究生。一个偶然的机会,他得知当地一家超市的老板希望院长帮助设计一种可以扫描商品价格的设备,以提高超市的商品销售效率。由于超市的收银员每次结算货物时都需要手动输入结构,当加班流量达到时,收银员的结算效率很低。但是院长觉得这是一件非常困难的事情。
然而,伯纳德瑟沃(Bernard Cerveau)和他的朋友约瑟夫伍德兰(Joseph Woodland)觉得这是一个巨大的商机,决定设计并制作一个商业产品。在尝试了用紫外光照射石墨、盲点系统和点状符号系统的方案后,由于当时的技术限制,并没有得到广泛应用。
转眼间,时间来到了20世纪60年代,伍德兰始终没有放弃那一年还没有商业化的金点子。此时,他已经是IBM的一名工程师。在公司期间,他不断阐述自己对条码技术实现的想法,同事们也不断强调条码的商业价值。同时应用了激光和计算机,完成了条形码的技术基础。大约在1969年,伍德兰参加了由IBM投资、乔治劳雷尔领导的超市扫描仪和标签研究项目组。经过几年的艰苦研究,IBM终于推出了可识别的条形码。
1974年6月26日,世界上第一台条形码扫描仪安装在俄亥俄州特洛伊的Marsh超市。第一个扫描的产品是10包箭牌多汁水果味口香糖,现已被美国历史博物馆收藏。然后,条码被广泛应用于商品、图书、邮政等系统,大大提高了业务运作的效率。
我们可以看到,推动技术进步的往往是现实生活中的业务需求。然而,随着条形码的广泛使用,其缺点逐渐显现出来,
1.条码的数据表示非常有限,只能表示数字和字母,不能表示更多的其他字符信息;
2.条形码代表的数据量也非常有限。如果想包含更多的数据,只能不断地横向拉伸,导致条码越来越大,不利于商业使用;
3.条码变形或条码丢失,无法获取数据,影响业务正常使用;
由于条形码存在这样或那样的缺点,人们对更多信息的期望与日俱增。
00-1010虽然二维码的应用在中国大放异彩,但其实是日本人发明的。日本电装波公司(日本电装公司的子公司)的滕宏远是二维码的发明者。在公司的业务中,需要标注汽车零部件的属性信息,包括产地、生产时间、生产批次等信息。传统的条形码不能满足大信息量的标记,需要一种覆盖更多信息的标记方法。
广原认为,既然一维条码不能表达更多的信息,是否可以增加维度使其表达更多的信息?这就是二维码的思维原型。但是后来遇到了如何让这个二维码实现高速阅读。技术研究团队利用正方形四个角中的三个作为定位器,然后通过剩下的一个角判断实际二维码的方向,这样无论从哪个方向扫描,二维码内容的读取都不会受到影响。
经过几年的反复试验,滕宏远的研究团队终于攻克了技术难关。这个小小的方形二维码,信息存储速度比条形码快300倍,二维码识别速度快10倍。1994年,电装波公司开始面向全日本推广二维码技术,并将其命名为“快速反应码”。如今,二维码已经在世界范围内广泛使用,尤其是在中国。
00-1010在网上,我们很容易找到制作二维码的在线工具网站。在这些网站中,可以转换成二维码的信息包括文字、网址、图片、音视频等等。可见,二维码的本质其实是一种数据信息表达。
二维码实际上是由白色方块和黑色方块组成的,实际上对应的是计算机世界中的0-1二进制语言。其中黑色方块代表1,白色方块代表0。所以,其实黑白方块二维码的组合就是一个由0-1组成的信息组合。由0-1组成的二进制数据可以对信息进行编码,也是计算机可以理解的语言。
(图片来自网络)
在扫描手机二维码时,由于二维码是黑白两位数的点阵,当二维码通过光反射进入手机摄像头时,手机中的CMOS感光元件将接收到的光信号转换成电信号,二维码所代表的0-1组合实际上就是手机中对应的高低电位,最终解析成二维码对应的标签信息。
00-1010扫码登录是二维码非常典型的应用场景。以前登录网站需要输入用户名和密码,有时候会一时想不起来。
起来密码是多少而非常着急。自从有了二维码登录之后,只要拿出手机扫一扫web端的二维码就可以完成登录操作非常方便,那我们就来分析下二维码扫描登录的技术原理是怎样的吧。
对于登录这件事情来说,其本质实际包含了两件事情,第一件事情是告诉平台你是谁,第二件事情是向平台证明你就是你不是别人。那传统的用户名以及密码登录的方式,用户名实际就是告诉平台你是谁,而密码就是向平台证明你就是你。那么放在二维码扫码登录的场景下,实际也是需要完成这两件事情的支撑。下面我们分析下客户端扫码登录扫码登录的实现机制。
客户端扫码登录
我们在客户端登录的时候,需要输入用户名以及密码信息,此后的客户端与服务端的交互过程大致如下所示:
1、首先用户在客户端输入用户名以及密码进行登录操作;
2、客户端携带用户名、密码以及设备信息向服务端发起登录请求;
3、服务端校验用户名以及密码信息,同时将账号信息与设备信息进行绑定,并返回token信息;
4、客户端保存token信息;
5、再次登录的时候不需要再传递用户名以及密码,将token信息以及设备信息传递给服务端,服务端校验token以及设备信息;
这里的token信息实际就是代替了账号以及密码信息,可以理解为一种数据结构存储了账号、设备等信息,用以后期的服务端校验。
上面所说的是客户端登录的大致步骤,它是客户端扫码登录的基础,接下来我们再看下扫码登录的大致业务流程,如下所示:
在这个过程中最重要的是生成临时的token,这个临时token实际就是一种登录的凭证,并且与二维码一一对应,用过一次就会失效。那为什么要有这个临时的token呢?实际是为了解决扫码这个动作与登录的连接关系,系统需要确认二维码是被客户端扫描后进行的登录操作。
微信第三方扫码登录
所谓微信第三方扫码登录指的是登录CSDN,但是使用的是微信账号进行登录,实际上就是用微信的账号信息来当做CSDN账号信息使用。它上上述的客户端登录的最大不同就在于多了和微信开放平台的交互。通过从微信开放平台获取用户的头像、用户名等信息。
⭐️总结⭐️
本文主要结合了二维码的技术发展历程,阐述了二维码的技术原理,同时对二维码典型的应用场景进行了技术原理的分析,相信通过本文大家对于二维码的原理有了更加深刻的理解。
到此这篇关于Java番外杂谈之每天扫的二维码你了解它内含的信息吗的文章就介绍到这了,更多相关Java 二维码内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。