python学习之最简单的用户注册及登录验证小程序(共5篇)由网友“我骗你的你也信”投稿提供,以下是小编整理过的python学习之最简单的用户注册及登录验证小程序,仅供参考,希望能够帮助到大家。

篇1:python学习之最简单的用户注册及登录验证小程序
正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底,
有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号.
首先先来做一些准备工作,mysql里查看表结构以及增加列的语句:
show create table user;
alter table user add salt char(10);
md5和sha1大家可以自己选
import hashlib
In [64]: passwd=’111111′
In [67]: md5pass=hashlib.md5(passwd)
In [69]: hashlib.md5(passwd).hexdigest
Out[69]: ’96e79218965eb72c92a549dd5a330112′
In [70]: hashlib.sha1(passwd).hexdigest()
Out[70]: ’3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d’
In [71]: len(hashlib.sha1(passwd).hexdigest())
Out[71]: 40
In [72]: import string
In [73]: import random
In [74]: string.letters
Out[74]: ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
In [75]: string.digits
Out[75]: ’0123456789′
In [76]: string.digits+string.letters
Out[76]: ’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
In [77]: random.sample(string.letters,5)
Out[77]: ['S', 'E', 'w', 'F', 'L']
In [78]: ”.join(random.sample(string.letters,10))
篇2:Flash和ASP实现的用户登录/注册程序
Flash一帧可以完成.asp也可以一个文件完成,这里我将用户登录和用户注册分为两步做,方便大家理解,Flash分两帧,asp分两个文件,
准备:Flash8 , IIS ,Miscrosoft Access ;
开始:
数据库中:
用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本;
输入一条数据 username 和 password 都为chooseflash;
如图:
Flash中:
新建文件命名为login.fla,舞台大小设置为250*200,背景随意;
第一帧:用户登录
新建三个图层分别命名为 bg 和 body 和as;
舞台中的实例:
一个 window 组件到舞台命名为 win;
win(背景),放到 bg 层;
设置如图:
二个按钮组件分别命名为: login 和 register;
login(登录),register(注册),放到 body 层;
设置如图:
三个 TextInput 文本输入组件分别命名为 username 和 password 和 msg;
username(用户名输入框),password(密码输入框),msg(消息框),放到 body 层;
第一帧是用户登录脚本.代码如下:
//此帧是用户登录脚本
stop();
//将window组件设置为不可用.因为是做背景
win.enabled = false;
//新建LoadVars对象,用来发送和接收数据;
var loginData:LoadVars = new LoadVars();
//注册按钮
register.onRelease=function(){
win.title=“(教程Flash与ASP)用户注册”;
msg.text=“”;
gotoAndStop(2);
}
//登录按钮.
login.onRelease = function() {
//判断用户名和密码是不是为空.
if ((username.text == “”) || (password.text == “”)) {
msg.text = “请正确输入用户名或密码!”;
//判断用户名和密码是否小于8位.
} else if((username.length<8)||(password.length<8)){
msg.text = “用户名和密码不能小于8位!”;
} else {
msg.text = “验证中...”;
//将用户名文体框的值付给loginData对象的username变量;
loginData.username = username.text;
//将用户密码文体框的值付给loginData对象的password变量;
loginData.password = password.text;
//使用get方法发送用户名和密码到login.asp中验证;再返回给loginData对象;
loginData.sendAndLoad(“login.asp”, loginData, “get”);
}
};
//调用LoadVars对象的onLoad事件.
loginData.onLoad = function(success) {
//判断加载login.asp是否成功;
if (success) {
//这个是ASP中查询数据库中返回的值;
if (loginData.success !=0) {
msg.text = “登录成功”;
//这里大家可以写自己的代码.
username.text=“”;
password.text=“”;
} else {
msg.text = “用户名和密码不正确”;
}
}else{
msg.text=“连接网络失败”;
}
};
下面是 login.asp 中的代码:
<%@LANGUAGE=“VBSCRIPT” CODEPAGE=“936”%>
<%
’声明变量
dim db,conn,div,rs,success,username,password
’获取Flash中传过来的变量
username=Request(“username”)
password=Request(“password”)
’设置一个连接对象
set conn=Server.Createobject(“adodb.connection”)
’数据库的相对路径
db=Server.MapPath(“UserTable.mdb”)
’数据库的驱动
div=“Provider=Microsoft.Jet.OLEDB.4.0;”&“Data Source=”&db
’打开连接
conn.Open div
’新建记录集对象
set rs=server.createobject(“adodb.recordset”)
’SQL查询语句,用来查询数据库中是否有数据;
sql=“select * from UserTable where username=’”&username&“’ and password=’”&password&“’”
’打开查询语句
rs.open sql,conn,1,1
’如果数据库中没有数据rs.RecordCount将返回0;
success=rs.RecordCount
’将success变量发送到Flash中
Response.Write(“success=”&success)
’关闭记录集
rs.close
’释放记录集对象rs
set rs=nothing
’关闭打开的连接
conn.close
’释放连接对象conn
set conn=nothing
%>
到这里.用户登录就可以了.下面我们做的是用户注册;
篇3:python学习之最简单的获取本机ip信息的小程序
获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉python好麻烦啊,每次都要import,
可以在程序里直接read出来,也可以先在命令行执行ifconfig > xx.txt,这样可以直接访问倒入后的文本信息。
这个小程序有个问题,与朋友讨论了还没解决彻底,如果用findall是可以匹配所有的,但是怎么解决用match只匹配一次的问题呢,习惯了js里的/g,当然如果只是解决问题就好的话,推荐大家还是用findall。
from subprocess import Popen, PIPE
import re
def get_ipinfo:
f = Popen(‘ifconfig’, shell=True, stdout=PIPE)
s = f.stdout.read()
#s = file(‘ipinfo.txt’,'r’).read()
p = r’.*?inet (?P.*?) ‘
p = re.compile(p, re.DOTALL)
#out = p.findall(s)
ut = p.match(s).groupdict()
return out
print get_ipinfo()
原文;www.iwangzheng.com/?p=250
篇4:某会议系统SQL注入,可绕过后端验证登录任意注册用户
后端登录验证存在SQL注入漏洞,可绕过验证登录任意注册用户的个人中心
详细说明:全国微波毫米波会议:www.mws-cie.org/ncmmw/index.php
矮油,大牛们看到这个站点不要笑,其实这个站存在好多漏洞,xss、webshell、任意文件下载,实在是我这个菜鸟学习的好地方,顺便求个邀请码,希望在这里能和各位牛学习交流,共同进步~
一、确定后端登录验证机制:
登录使用email和password两个参数
构造email为
' or 1=1 or '1'='1,返回“用户名和密码错误”
构造email永假值
' and '1'='2,返回“Email不存在”
经过几次尝试与返回结果观察,后端应该不是直接同时使用email与password两个参数构造SQL查询看有无记录的,而是使用email查出用户信息,无记录则返回“Email不存在”,有记录则比对查询的密码与输入的密码,一致则成功,否则返回“用户名或密码错误”
二、构造注入参数,绕过验证机制:
自然想到了union查询,自己构造查询结果,然后password填入一致的值,即绕过验证了~
先确定查询列数,再确定password列的位置,经过几次尝试,构造了POST参数:
email=' and 1=2 union select '123',3,1,1,1,'1&password=123&Submit=登 录
三、登录过程:
这个系统是使用一个默认的PHPSESSID的session cookie值来确定用户登录与否的,因此首先浏览器打开站点首页,就会生成这么一个session,利用它以及上面构造的登录参数,登录后,这个session就成了有效的了~
四:继续:
继续研究发现,查询结果的第二列即用户ID,且是从1开始递增的,因此改变这个值,就可以登录任意用户个人中心啦~
虽然SQL漏洞本身危害巨大,但是考虑这个站点的受众人群都是其专业内的,因此或许危害不大~ 但是被恶意 利用了,也是很 的~
修复方案:
过滤传来的参数~
系统还存在很多常见漏洞,
某会议系统SQL注入,可绕过后端验证登录任意注册用户
,
。到处都是~
篇5:实现 Unix 用户在指定端口和规定时间内登录注册Windows系统
实现 Unix 用户在指定端口和规定时间内登录注册 北京中软同和公司何绍德 某些使用Unix操作系统的 银行 ,在绿卡等应用项目中,出于 安全 上的考虑,往往要求终端用户只能在指定的端口、指定的日期和时间内注册登录,下面提供一种实现这种功能的方法。 工作原理
实现Unix用户在指定端口和规定时间内登录注册
北京中软同和公司 何绍德
某些使用 Unix 操作系统的银行, 在绿卡等应用项目中 , 出于安全上的考虑 , 往往要求终端用户只能在指定的端口、指定的日期和时间内注册登录。下面提供一种实现这种功能的方法。
工作原理
当用户注册登录到 Unix 系统时 , 首先执行系统文件 /etc/profile , 然后执行文件 $HOME/.profile 。我们在文件 /etc/profile 中增加一段程序 , 判断一下当前注册用户的登录端口、当前的登录日期和时间是否和用户信息配置表 /etc/logport/loginfo 中预先设定的数据相一致 , 若不一致 , 则拒绝用户注册登录。之所以修改文件 /etc/profile 而没有使用文件 $HOME/.profile, 是因为使用文件 /etc/profile 更便于控制和处理。
文件 /etc/logport/loginfo 是一个文本文件 , 每个用户占用一行 , 每行中有七个字段 , 字段间由制表符相隔。七个字段分别表示注册用户名、登录端口设备名、每周工作的日期 ( 星期日到星期六分别用 0 ~ 6 七个数字表示 ) 、每天上班的时间 ( 时和分各占一个字段 ) 以及每天下班的时间 ( 时和分各占一个字段 ) 。下面是文件 /etc/logport/loginfo 的一个例子 :
laohe tty03 123456 8 25 17 30
laochen tty04 246 8 30 17 30
laowang tty2a 1350 10 00 18 00
如果终端是通过终端服务器或拨入访问服务器登录到系统 , 此时使用的是伪 tty 设备文件 , 通常登录的端口是不固定的。因此必须先执行固定通讯服务器端口设置程序 , 此程序由通讯服务器生产厂家随产品一起提供。
安装软件
在软盘上提供了四个程序 :
/etc/logport/log_port.inst
安装程序
/etc/logport/log_port.uninst
拆卸程序
/etc/logport/log_port
主体程序
/etc/logport/loginfo
用户信息配置表
1. 以 root 身份登录 , 把所提供软盘上的文件装入系统。
# tar xv6
此时在 /etc/logport 目录下有下面四个文件 , 请检查一下它们的权限和属性 :
rw-r ― r-- 1 bin bin 603 log_port
rwx------ 1 bin bin 461 log_port.inst
rwx------ 1 bin bin 325 log_port.uninst
rw-r ― r-- 1
bin bin 116
loginfo
2. 执行安装程序。
# /etc/logport/log_port.inst
安装程序主要完成三个功能 :
・ 如果文件 /etc/profile 在此之前还没有被修改过 , 则产生文件 /etc/profile 的副本 /etc/profile.old.sco 。
・ 修改文件 /etc/profile, 把主体程序 log_port 插入到文件 /etc/profile 中。
・ 修改新文件 /etc/profile 和 /etc/profile.old.sco 的权限和属性。
3. 编辑 /etc/logport/loginfo 文件。
文件 /etc/logport/loginfo 中存放着有关注册用户的用户名 (name), 允许登录的端口设备文件名 (port), 每周允许工作的日期 (date) 以及上下班时间的时值和分值 (onduty(hh), onduty(mm), offduty(hh), offduty(mm)) 等七个字段的信息 , 字段间用制表符相隔。其结构如下所示 :
Name port date onduty(hh) onduty(mm)
offduty(hh) offduty(mm)
# vi /etc/logport/loginfo
laohe tty03 123456 8 25 17 30
laochen tty04 246 8 30 17 30
laowang tty2a 1350 10 00 18 00
# 注意在编辑时不要改变文件 /etc/logport/loginfo 的权限和属性。
经过上述操作后 , 现在用户登录注册时系统就要检查用户的登录端口和时间是否在规定的范围内 , 对于所有不符合规定的用户都将被拒绝登录到系统中。
执行拆卸程序
当你不需要对用户登录进行检查时 , 可以执行拆卸程序 /etc/logport/log_port.uninst 恢复原来的系统文件 /etc/profile 。如果以后你需要再次使用该功能时 , 可以再次执行安装程序 /etc/logport/log_port.inst 。
拆卸程序 /etc/logport/log_port.uninst 主要完成下述功能 :
* 从副本文件 /etc/profile.old.sco 恢复文件 /etc/profile 。
* 删除副本文件 /etc/profile.old.sco 。
* 修改文件 /etc/profile 的权限和属性。
源文件
1. 主体程序 /etc/logport/log_port
lab=0
name= ‘ who am I | awk ‘ {print $1}' ’ # 得到注册用户名
dev= ‘ who am I | awk ‘ {print $2}' ’ # 得到注册端口名
awk -v name1=“$name” -v dev1=“$dev”
‘ $1 == name1 && $2 != dev1 {exit 1} ’ /etc/logport/loginfo || lab=1
if [$lab -eq 1 ] # 和信息配置表中相应字段对比
then
echo “ntThe user $name can not login on this port”
exit 1
fi
ww= ‘ date +%w ’ # 得到当前星期几
aa= ‘ date +%H ’ # 得到当前时间的时值
bb= ‘ date +%M ’ # 得到当前时间的分值
hm= ‘ expr $aa *60+ $bb ’ # 把当前时间化成分值
lab=0
awk -v hm1=“$hm” -v ww1=“$ww”
‘ $3 ! ~ ww1 {exit 1}
{stime=$4*60+$5; etime=$6*60+$7}
{if(hm1
/etc/logport/loginfo || lab=1
if[$lab -eq 1] # 如果不在工作时间内登录则退出
then
echo “ntYou must login in working time”
exit 1
fi
trap 1 2 3
2. 安装程序 /etc/logport/log_port.inst
tmp_file=/etc/hsd$$
copy_file=/etc/profile.old.sco
if ‘ logname ’ != “root” 〗 # 必须以超级用户 root 登录
then echo“ntPlease become supperuser root first”
exit 1
fi
if[-r $copy_file ] # 如果副本 profile.old.sco 存在 , 则认为已经安装过
then echo “ntThe software has been installed”
exit 1
fi
copy /etc/profile $copy_file # 建立系统文件 /etc/profile 的副本
sed “/^trap 1 2 3$/{
r /etc/logport/log_port
d
}” /etc/profile > $tmp_file # 把主体程序 log_port 插入到 /etc/profile
mv $tmp_file /etc/profile
chown bin /etc/profile $copy_file # 修改 /etc/profile 和它的副本的属性
chgrp bin /etc/profile $copy_file # 性和权限
chmod 664 /etc/profile $copy_file3. 拆卸程序 /etc/logport/log_port.unins
copy_file=/etc/profile.old.sco
if[ ‘ logname ’ != “root” ] # 必须以超级用户 root 登录
then echo “nt]Please become supperuser root first”
exit 1
fi
if [!-r $copy-file] # 如果副本 profile.old.sco 不存在
then echo“ntThe software has been uninstalled”
exit 1
fi
copy $copy-file/etc/profile # 恢复系统的 /etc/profile
rm $copy_file # 删除副本文件 profile.old.sco
chown bin /etc/profile # 修改 /etc/profile 的属性和权限
chgrp bin /etc/profile
chmod 664 /etc/profile
3. 用户信息配置表 /etc/logport/loginfo
在用户信息配置表中提供下面的例子 , 在实际应用时可以删除它们,
laohe tty03 123456 8 25 17 30
laochen tty04 246 8 30 17 30
laowang tty2a 1350 10 00 18 00
【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
原文转自:www.ltesting.net
★ 测试报告模板
★ InnoDBInsert(插入)操作(下)mysql技术内幕
★ 安卓实习心得感悟
【python学习之最简单的用户注册及登录验证小程序(共5篇)】相关文章:
python实现中文分词FMM算法实例2023-05-16
html学习总结2023-01-23
Linux系统中获取路径的文件名的方法2023-10-08
从零开始学Android应用安全测试(Part1)2022-04-30
详解加密技术概念、加密方法以及应用2024-02-19
windows服务器防止asp木马详细教程Windows服务器操作系统2022-04-30
网站渗透思路全方面总结2023-01-18
php生成随机数的三种方法2022-11-27
Ubuntu虚拟机与win7主机方便传文件的实现方法2023-07-25
BBSXP,很多注入脚本安全2023-02-15