qrcode

【项目实战】我是如何从分析到手写一个微信机器人的 - 登录篇

烂漫一生 提交于 2019-11-30 03:47:06
相信各位都有在使用微信,并且也知晓web版微信的存在。今天我们就来讲一下,如何通过模拟web版微信接口来制作一个全自动的微信机器人。本篇是该实战项目的第一篇,主讲如何实现一个登陆过程。整个的分析过程实际上是对 https://res.wx.qq.com/a/wx_fed/webwx/res/static/js/index_4f3487a.js 文件的解读🐶。 <!--more--> 0x00逻辑图集 在对一个站点进行逻辑复现前,制作一张逻辑脑图会对整个过程有更好的理解。帮助你理清思路。 图集标注 为了让图像更为整洁,我们将带括号的内容,例如 【verb】 作为一个变量来表示。 并且为了让逻辑路线更为清晰,我们声明如下几类线以区分下一步的操作。 登录逻辑 接下来则是一张通过mindnode画成的网页微信登录过程。 > 其中的session指代该次会话,可以自动处理整个过程中出现的set-cookie事件。 0x01过程分解 而后我们将web微信的登录过程划分成以下几个步骤。 1.打开web微信首页 2.扫描二维码 3.模拟扫描及确认过程 4.完成登录 5.登录后的信息获取 0x02过程详解 1.打开web微信首页 首先我们需要获取到二维码以用于扫描。通过观察web请求过程我们发现, https://login.weixin.qq.com/qrcode/【xxx】 为其实际地址。而

批量生成二维码

主宰稳场 提交于 2019-11-30 01:44:29
一个简单的批量二维码生成器 最近需要将大量的字符串生成二维码, 网上找了很多网站和应用都不是很理想,干脆自己做了吧! github 上找了下找到QrCode 开源项目 QrCode 开源类库 安装qrcode非常简单, 参考这里 引用 dll using QrCode 核心逻辑 /// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="savedir"></param> public void QrCodeBatch(string filename, string savedir) { Stopwatch sw = new Stopwatch(); string path = filename; StreamReader sr = new StreamReader(path, Encoding.Default); String line; QRCodeGenerator qrGenerrateor = new QRCodeGenerator(); QRCodeData qRCodeData = null; QRCode qrcode = null; Bitmap qrCodeImage = null; sw.Start(); while ((line = sr

vue中使用vue-qrcode生成二维码

我是研究僧i 提交于 2019-11-29 19:55:45
要使用二维码,引入一个包就可以了,使用非常简单,话不多说,看代码吧 //1,引入, import VueQrcode from '@xkeshi/vue-qrcode'; Vue.component(VueQrcode.name, VueQrcode); //2,使用: <div id="qrcode">二维码位置</div> <qrcode v-if="code" :value="code" :options="{ size: 200 }"></qrcode> data(){ return:{ code:'' } } methods:{ setCode(){ setTimeout(()=>{ this.code='https://www.baidu.com' },3000) } }, mounted(){ this.setCode() } 这样子就OK了,是不是很简单 来源: https://www.cnblogs.com/ysla/p/11530787.html

Java之HashMap迭代删除使用方法小结

£可爱£侵袭症+ 提交于 2019-11-29 15:24:13
map的迭代删除,和我们常见的list,set不太一样,不能直接获取Iteraotr对象,提供的删除方法也是单个的,根据key进行删除,如果我们有个需求,将map中满足某些条件的元素删除掉,要怎么做呢? <!-- more --> I. Map 迭代删除 迭代删除,在不考虑并发安全的前提下,我们看下可以怎么支持 1. 非常不优雅版本 我们知道map并不是继承自Collection接口的,HashMap 也没有提供迭代支持,既然没法直接迭代,那我就老老实的low b版好了 Map<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); List<String> removeKey = new ArrayList<>(); for (Map.Entry<String, Integer> e: map.entrySet()) { if (e.getValue() % 2== 0) { removeKey.add(e.getKey()); } } removeKey.forEach(map::remove); 上面的实现怎么样?并没有什么毛病 (为啥不直接在遍历中删除?) 2. 正确姿势版 虽然Map没有迭代

二维码的生成及保存为图片

故事扮演 提交于 2019-11-29 10:09:05
直接上代码,不废话。直接复制就可以成功。 <script type="text/javascript" src="/js/qrcode.min.js"></script> <script type="text/javascript" src="/js/html2canvas.js"></script> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <body> <input id="text" type="hidden" value="<%=qrcodeurl1 %>" /> <input id="text2" type="hidden" value="<%=qrcodeurl2 %>" /> <input id="text3" type="hidden" value="<%=qrcodeurl3 %>" /> <center> <div style="margin-top:85px;"> <div style="float:left;margin-right:50px;margin-left:50px;"> <b style="margin-bottom:10px;display:block">前置协议二维码</b> <div class="box" id="qrcode2"

聊聊ImageIO使用argb操作jpg的bug

喜欢而已 提交于 2019-11-28 23:12:30
序 本文主要来聊一下使用ImageIO在BufferedImage.TYPE_INT_ARGB模式下操作jpg格式图片显示黑色的bug。 bug JDK-4712797 : ImageIO fails to decode YCbCr JPEGs that do not have a JFIF marker JDK-4776576 : REG: ImageIO reader produces an incorrect image when read as a RenderedImage 复现实例 public void testArgbOnJpg() throws IOException { int width = 400; int height = 400; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); g2.setColor(Color.WHITE); g2.fillRect(0, 0, width, height); g2.setComposite(AlphaComposite.Src); g2.setRenderingHint(RenderingHints.KEY

80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?

眉间皱痕 提交于 2019-11-28 22:14:29
鸡仔说:今天介绍一位天才程序员——亚当·德安格洛(Adam D'Angelo),他被《财富》杂志誉为“科技界最聪明的人之一”,大学去了被誉为"天才"摇篮的加州理工,毕业后成为 Facebook 的第一任 CTO,后创造全球领先问答公司 Quora。2016 年福布斯排行榜 40 岁以下最富有企业家中排名第 24 位。最可怕的是,这个身价数十亿的小伙子,是个 80 后(1984年出生),开挂的人生从来都不需要解释 竞赛获奖成为家常便饭 和很多天才一样,Adam 很早就展现了惊人的天赋和智慧。这集中体现在他参加的编程竞赛上。学编程的童鞋应该知道,在编程中,算法是作为区分程序员逻辑思维水平高低的重要指标之一。也就是说,如果你算法写得好,可以简单地等同于的你的编程思维好。而在算法中,被称为 ACM 的竞赛(全称为 ACM 国际大学生程序设计竞赛),是算法领域公认的权威竞赛。这里补充一句,毫不夸张地讲,如果你在 ACM 比赛上获得好成绩,那么便可以很轻松地通过国内 BAT 级别甚至以上的互联网公司的算法考核。更有甚者,直接拿算法竞赛题考面试者,通过就直接拿 offer。但就是这样一个含金量特别高,被很多程序员视为"噩梦“的竞赛,Adam 一路过关斩将拿到了亚军,可以想见,他的算法功底是有多强。对他来说,参加这种级别的竞赛并获得好成绩就是家常便饭 当然,有人可能要说了,他算法功底强

Python | 一行命令生成动态二维码

佐手、 提交于 2019-11-28 07:19:18
Python | 一行命令生成动态二维码 当我看到别人的二维码都做的这么炫酷的时候,我心动了! 我也想要一个能够吸引眼球的二维码,今天就带大家一起用 Python 来做一个炫酷的二维码! 首先要安装工具 myqr: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: $ myqr --help 可以看出 myqr 有着丰富的参数支持,这里就不再一一解释,后面使用到会再细说。 简单用法 首先我们生成一个普通二维码: $ myqr "http://weixin.qq.com/r/PnUmPg7E8lONrUpd9yAs" line 16: mode: byte Succeed! Check out your 2-H QR-code: /mnt/d/code/Python/learn/myqr/qrcode.png 这时就会在当前目录下生成一个名称为 qrcode.png 的二维码。 如果 myqr 后面传入的是普通字符串,那么扫描后会现在字符串。若是一个网址,扫描后会自动跳转。 大家可以扫描下看看,是不是我们设置的字符串。 需要注意的时,这里的字符串不能指定中文,否则会抛出 ValueError('Wrong words! Make sure the characters are supported!') 的异常。 1、使用 -d

Python使用QRCode模块生成二维码

眉间皱痕 提交于 2019-11-27 20:42:45
https://www.cnblogs.com/linjiqin/p/4140455.html QRCode官网 https://pypi.python.org/pypi/qrcode/5.1 简介 python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库。 简单用法 import qrcode img = qrcode.make('hello, qrcode') img.save('test.png') 高级用法 import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data('hello, qrcode') qr.make(fit=True) img = qr.make_image() img.save('123.png') 参数含义: version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。 error_correction:控制二维码的错误纠正功能。可取值下列4个常量。   ERROR_CORRECT_L:大约7