本篇比上一篇多了重定向的功能 #!/usr/bin/env python # -*- coding: utf-8 -*- #python3 import base64 import random import time import json from flask import Flask, request, redirect app = Flask(__name__) users = { "] } redirect_uri='http://localhost:5000/client/passp…
看一个关于授权登陆的简易模块,觉得挺不错,学习学习. 1.登录的逻辑:如果用户名和密码正确,就返回 token .2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时3.然后放在 users 中密码的后面,每次都不一样4.验证 token 的步骤,取出以后,解码得到用户名,去和 users 中的 token 比较,(只会和最近的 token 比较,之前的不比较,也就是之前的失效了)然后再验证是否过期. app.py #!/usr/bin/env python # -*- co…
使用 python 编写一个授权登录验证的模块 我们编写的思路: 1.登录的逻辑:如果用户名和密码正确,就返回 token . 2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时 3.然后放在 users 中密码的后面,每次都不一样 4.验证 token 的步骤,取出以后,解码 得到用户名,去和 users 中的 token 比较,(只会和最近的 token 比较,之前的不比较,也就是之前的失效了) 然后再验证是否过期. 源代码: from flask import Fla…
这一节主要介绍如何获设置捕获过滤,这里的过滤是指在捕获前过滤 设置捕获过滤主要是在CFilterDlg中完成,也就是对应之前创建的设置过滤规则对话框,如图: 首先要根据用户的选择来生成一个合法的过滤规则字符串,根据WinPcap的要求,合法的过滤规则可以是如下几种: 1) 表达式支持逻辑操作符,可以使用关键字 and.or.not对子表达式进行组合,同时支持使用小括号.2) 基于协议的过滤要使用协议限定符,协议限定符可以为ip.arp.rarp.tcp.udp等.3) 基于MAC地址的过滤要使用…
这一节主要介绍如何获取设备列表,比较简单 获取设备列表主要是在CAdpDlg中完成,也就是对应之前创建的选择适配器模块,如图: 当打开选择适配器对话框后,在列表视图控件中显示当前主机所有适配器及适配器的描述,当选中一个适配器时,在下方的编辑框中会显示当前选中的适配器,单击绑定会提示网卡绑定成功. 本节中代码都在AdpDlg.cpp中完成,当然变量的声明要在其对应的头文件中去做,这里就不再叙述. 首先要获取设备列表,在OnInitDialog函数中加入如下代码: ) return FALSE; 这…
在phpWeChat中如何定义一个授权登录(获取昵称)的超链接?使其点击后出现如下效果? 由于集成了这个功能,其实这个需要是很简单的. 假如您想在授权后跳转到http://www.baidu.com/,那么这个链接的地址就是: http://devtest.phpwechat.com/index.php?m=wechat&a=auth20&redirect_url=urlsafe_b64decode('http://www.baidu.com') 授权登录后,系统自动生成$_SESSION…
前期知识 1.如何编写一个简单的Linux驱动(一)——驱动的基本框架 2.如何编写一个简单的Linux驱动(二)——设备操作集file_operations 前言 在上一篇文章中,我们编写设备驱动遇到了不少问题: (1) 注册设备时,设备号需要程序员给定,每次编写驱动时,程序员需要知道有哪些设备号是空闲的: (2) 加载驱动后,需要用户使用mknod命令手动生成设备节点: (3) 虽然用户程序调用了读写设备的函数,但是并没有数据传输. 在本篇文章中,我们会一次解决这三个问题. 要下载上一篇文章…
这一节是程序的核心,也是最复杂的地方 首先需要明白的一点是,一般对于一个有界面的程序来说,往往需要多线程.本程序中除了界面线程外,抓包需要另外创建一个新的线程.在写抓包函数之前,首先要将前面两个模块的结果返回到主对话框界面对应的类实现中,在SnifferDlg.cpp中,修改之前增加的两个模块的触发函数如下: void CSnifferDlg::OnAdp() { // TODO: 在此添加命令处理程序代码 CAdpDlg adpdlg; if(adpdlg.DoModal() == IDOK)…
前期知识 如何编写一个简单的Linux驱动(一)--驱动的基本框架 前言 在上一篇文章中,我们学习了驱动的基本框架.这一章,我们会在上一章代码的基础上,继续对驱动的框架进行完善.要下载上一篇文章的全部代码,请点击这里. 1.字符设备的四个基本操作 驱动让用户程序具备操作硬件设备的能力,那么对硬件设备有哪些操作呢?在学习编程语言时,我们都学过对文件的操作,包括打开文件.关闭文件.读文件.写文件这四个基本操作.对于Linux来说,一切设备皆文件,所以对设备的基本操作也可以分为打开.关闭.读.写这四个…
看用python写网络爬虫第一课之编写可复用的下载模块的视频,发现和<用Python写网络爬虫>一书很像,写了点笔记: #-*-coding:utf-8-*- import urllib2 #下载时遇到的错误经常是临时性的,比如服务器过载时返回的 503 Service Unavailable错误.对于此类错误,我们可以尝试重新下载 def download(url, num_retries = 2): #默认重试次数为2次 print "Downloading:", ur…