自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 问答 (25)
  • 收藏
  • 关注

原创 面试题python语法以及其他基础部分

1.列表推导list comprehension和生成器的优劣? 列表解析代替了可以代替lambda, map, filter函数, 减少函数调用次数, 提高效率。受到内存限制,列表容量肯定是有限的, 创建一个一百万元素的列表, 如果我们只用到前面几个元素, 那么绝大部分空间都被浪费了。生成器表达式并不创建一个真正的列表, 返回一个生成器, 每次调用next返回下一个元素,遍历完抛出stopIte...

2018-03-29 21:24:01 616

原创 面试 网络基础部分

1.TCP/IP分别在模型的哪一层?   应用层运输层   TCP网络层   IP数据链路层物理层  2.socket长连接是什么意思?socket是应用层与TCP/IP协议族中间的软件抽象层, 是一组接口.长连接是指socket连接后不管是否使用都保持连接。3.select和epoll你了解么,区别在哪?select和epoll这两个机制都是多路I/O机制的解决方案多路IO机制, 就是把所有的描...

2018-03-29 21:23:38 748

原创 如何仅用递归函数和栈操作逆序一个栈

【题目】   一个栈依次压入1、2、 3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后, 从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现, 不能用其它数据结构。【难度】两星【解答】本题我们要实现两个递归函数——getAndRemoveLastElement,reversegetAndRemoveLastElement(Stack<In...

2018-03-27 15:39:28 175

原创 RSA公钥密码算法

【题目】 实现 RSA 公钥密码算法,具体要求:     A. 随机选择两个长度不小于 64 比特的整数批 p,q,并选择合适的素检测算法检测其素性, 计算模 n=pq。     B. 随机选择一个长度不小于 16 比特的整数 e,判断其是否适合作为公钥,直至找到合适的公钥,利用欧几里得算法计算私钥 d。     C. 任选一个长度不小于 64 比特的整数进行加密,然后使用私钥解密。 【实现代码】...

2018-03-27 14:42:04 1463

原创 有两个栈组成的队列

【题目】编写一个类, 用两个栈实现队列, 支持队列的基本操作(add, poll, peek).【难度】二星【分析】栈是先进后出, 就像超市摆放的纯牛奶, 最先摆放的在最底下, 买家肯定是最后取走。队列先进先出, 就像去食堂排队, 最先排队的最先买饭, 最先走人。然而我们可以用两个栈模仿队列——stackPush, stackPopstackPush只管压入数据stackPop负责弹出数据如图1-...

2018-03-27 14:41:21 139

原创 SHA1密码

【题目】1) 实现SHA1 Hash函数算法,具体要求:A.     实现SHA1算法的消息压缩过程,任选一个大小为10M的word文档,并计算其Hash值(注意,计算的是包括文件头等在内的完整文件的Hash函数值,而不仅仅是文件内容的Hash函数值);【实现代码】#!/usr/bin/env python# -*- coding: utf-8 -*-"""Created on Sun Ja...

2018-03-26 20:29:11 1008

原创 MD5密码

【题目】1) 实现MD5 Hash函数算法,具体要求:A.     实现MD5算法的消息压缩过程,任选一个大小为10M的word文档,并计算其Hash值(注意,计算的是包括文件头等在内的完整文件的Hash函数值,而不仅仅是文件内容的Hash函数值);【实现代码】#!/usr/bin/env python# -*- coding: utf-8 -*-"""Created on Wed Jan ...

2018-03-26 20:27:06 473

原创 A5密码加解密

【题目】 实现 A5 算法,具体要求:     A. 实现 A5 算法的加密过程,由用户输入密钥,可以对任意输入的不小于1M 的文本文件内容进行加密;     B. 根据用户输入的密钥,对不小于 1M 的文本文件对应的密文进行解密;  【实现代码】#!/usr/bin/env python# -*- coding: utf-8 -*-"""Created on Tue Jan 2 21:1...

2018-03-26 20:25:18 2427

原创 RC4加解密

【题目】实现 RC4 算法,具体要求:     A. 实现 RC4 算法的加密过程,由用户输入密钥,可以对任意输入的不小于1M 的文本文件内容进行加密;     B. 根据用户输入的加密密钥,对不小于 1M 的文本文件的密文进行解密。 【实现代码】#!/usr/bin/env python# -*- coding: utf-8 -*-"""Created on Tue Jan 2 19:4...

2018-03-26 20:24:00 2811

原创 AES加解密

【题目】实现 CBC 模式和 OFB 模式的 AES 算法,具体要求:     A. 实现 AES 算法的上述两种模式的加密过程,由用户输入密钥,可以对任意输入的不小于 10M 的文本文件内容进行加密;     B. 根据用户输入的密钥,对不小于 10M 的文本文件对应的密文进行解密;【代码实现】#!/usr/bin/env python# -*- coding:utf-8 -*- # Aut...

2018-03-26 20:20:57 370 1

原创 DES加解密

【题目】实现密码本模式的 DES 算法,具体要求:     A. 实现 DES 算法的加密过程,由用户输入密钥,可以对任意输入的不小于10M 的文本文件内容进行加密;     B. 根据用户输入的加密密钥,对不小于 10M 的文本文件的密文进行解密 【代码实现】# -*- coding: utf-8 -*-"""Created on Wed Dec 20 08:56:27 2017@aut...

2018-03-26 20:18:42 216

原创 维吉尼亚之加解密及破解

【题目】 实现维吉尼亚密码算法,具体要求: A. 实现维吉尼亚密码加密过程,由用户输入密钥,可以对任意输入的明文进行加密; B. 根据用户输入的密钥,对密文进行解密; C. 实现维吉尼亚密码的唯密文攻击破解(基于重合互指数方法) 【实现代码】# -*- coding: utf-8 -*-"""Created on Wed Dec 13 08:17:01 2017@author: HP""...

2018-03-26 20:16:49 2222

原创 仿射密码之加解密及破解

【题目】1) 实现仿射密码,具体要求: A. 实现仿射密码加密过程,由用户输入密钥,可以对任意输入的明文进行加密; B. 根据用户输入的加密密钥,自动生成解密密钥,并能对加密密文进行解密; C. 实现仿射密码破解程序(穷举),能对任意输入的密文进行解密 【实现代码】# -*- coding: utf-8 -*-"""Created on Sun Dec 17 20:03:09 2017仿射密...

2018-03-26 17:06:59 8732

原创 10.2 设计用户编辑资料页面

我们应该给用户提供编辑自己资料的功能。我们来梳理一下如何实现这个功能, 首先我们应该建立一个修改用户资料的表单, 有了这个表单以后就得有一个路由来返回该表单, 如果是get请求则直接返回渲染该表单的模板; post请求修改资料, 并且返回用户资料页面;最后在用户资料页面添加一个修改资料的了解即可。一. 添加表单|-app/-main/forms.pyfrom flask_wtf import Fl...

2018-03-26 11:13:31 3792

原创 设计一个有getMin功能的栈

【题目】实现一个特殊的栈, 在实现栈的基本功能的基础上, 在实现返回栈中最小元素的操作。【要求】1. pop, push, getMIn操作的时间复杂度都是O(1)。2. 设计的栈类型可以使用现成的栈结构。【难度】一星【方案1】返回栈中最小元素, 我们可以遍历整个栈, 但是要求getMin的时间复杂度为O(1), 我们只好另想办法。我们可以牺牲空间来换取时间, 设计两个栈——stackData, ...

2018-03-25 14:56:51 434

原创 10.1 编写用户页面

我们访问不同用户的页面, 显示不同的信息, 但是用户页面的大体架构都是相同的, 这是怎么做到的呢?其实我们只要编写一个用户页面user.html, 然后返回模板的时候把当前登录的用户current_user作为参数传进模板, 模板就会显示该用户的各个属性, 不同用户的属性不同, 显示的内容也就不尽相同了。一. 为User表增加属性#为了使用户资料更丰富一些, 我们为用户增加几个属性:from fl...

2018-03-24 21:21:57 366

原创 9.2 角色验证——根据权限访问视图函数

    我们的web程序用户有不同的角色——普通用户, 管理评论的人, 权限最高的管理员。 不同的权限可以浏览不同的页面, 权限越大, 可以浏览的页面就越多。    本节我们为试图函数添加权限限制, 使其只可以被管理员或评论管理员访问。————————————————————————————————————一. 修改|-app/-main/[email protected]('/admin')...

2018-03-21 21:24:22 444

原创 9.1 为我们的角色划分权限

在第五章数据库的时候, 我们创建了Role表,并创建了不同的角色。不同的角色要有不同的权限, 本节我们来为角色划分权限。————————————————————————————————一.为我们的角色划分权限我们知道, 社交博客应该具有以下权限:操作位值关注用户0x00000001 (0x01)在他人文章发表评论0x00000010 (0x02)写文章0x00000100 (0x04)管理他人发表...

2018-03-20 16:52:14 628

原创 8.6 如何限制未认证用户访问有权限网页

——————————前言——————————————上节我们讲了注册时向用户发送确认邮件, 确认成功把用户的confirm属性值改为1, 默认为0.本节我们来利用这个confirm值来做些文章, 让未确认的用户登录以后不能看到主页, 显示一个页面提醒用户未确认账户, 让用户登录邮箱确认账户, 或者是选择重新发送确认邮件。——————————————————————————一. 修改|-app/-a...

2018-03-19 16:36:59 571 2

原创 8.5 用户注册时发送确认邮件功能——itsdangerous

__________________________________________________前言________________________________________________________我们先来看上节的注册视图函数:@auth.route('/register', methods=['GET', 'POST']) def register(): ...

2018-03-18 17:13:19 2152

原创 8.4 注册新用户

 ——————————————————————前言————————————————————————————本节讲解如何为我们的web程序添加注册新用户的功能。————————————————————————————————————————————————————一. 修改|-app/-auth/forms.pyfrom flask_wtf import FlaskFormfrom wtform...

2018-03-13 20:48:09 885

原创 8.3 为我们的web程序添加登录功能——flask-login

一. 安装flask-login扩展&pip install flask-login安装完新的扩展以后不要忘记更新requirements.txt文件:&pip freeze >requirements.txt二. 初始化扩展——|-app/__init__.py:from flask_login import LoginManagerlogin_manager = L...

2018-03-13 15:24:24 562

原创 8.2 创建认证蓝本

——————————————————————前言————————————————————————————之前我们讲过使用包和模块组织我们的web程序:|-flasky  |-app/  #web程序相关的内容在app包里,包括以下内容:    |-templates/  #响应返回的模板    |-static/  #响应返回的静态文件    |-main/  #蓝本      |-__init_...

2018-03-12 10:05:54 274

原创 8.1 使用Werkzeug实现密码散列(ps: 末尾有介绍@property装饰器)

————————————————————————前言——————————————————————————数据库中的密码是不安全的, 一旦恶意用户得到数据库的访问权, 那我们的密码就会被泄露, 利益必然受损。所以我们不应该在数据库中直接存储密码, 而是要存储密码对应的散列值。————————————————————————————————————————————————————一. 修改models...

2018-03-11 15:48:23 403

原创 7.1 大型程序的结构

——————————————————————前言————————————————————————————尽管在单一脚本文件中编写小型web程序很方便, 但是程序变复杂后, 使用单个大型源码文件会导致很多问题。Flask并不要求大型项目使用特定的组织方式, 程序结构的组织方式完全由开发者决定。本节我们介绍一种使用包和模块组织大型程序的方式。——————————————————————————————...

2018-03-08 19:58:59 1088

原创 6.1为我们的web程序添加发送邮件的功能

——————————————————————前言————————————————————————————为了和用户进行沟通, 我们在web程序中添加发送邮件的功能。————————————————————————————————————————————————————一. 安装flask-mail扩展&pip install flask-mail二. 修改hello.py文件from fl...

2018-03-05 15:48:32 900

原创 4.5用flask-migrate实现数据库迁移

一. 安装扩展二. 修改hello.py 文件from flask_migrate import Migrate, MigrateCommand#...migrate = Migrate(app, db)manager.add_command('db', MigrateCommand) #集成python shell, 见上节,效果如下:三. 创建迁移仓库&python h...

2018-03-03 19:27:39 661 1

原创 4.4集成python shell——自动导入程序中的对象

——————————————————————前言————————————————————————————我们每次调用python hello.py shell时, 要用到app, db等对象时都要手动导入, 很繁琐枯燥, 本节我们来实现自动导入。————————————————————————————————————————————————————一. 修改hello.py脚本from flask...

2018-03-03 14:48:18 547 2

原创 4.3 数据库

——————————————————————前言————————————————————————————本节讲解使用flask-sqlalchemy扩展管理数据库。————————————————————————————————————————————————————一. 安装flask-sqlalchemy扩展&pip install flask-sqlalchemy二. 创建表1. 创...

2018-03-02 16:48:32 442

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除