使用 if 条件使用 python 比较密码
use if condition to compare the password using python
我有 HTML 表格来获取名称和密码。python 代码用于获取输入数据并存储在变量 first_name 和密码中。
对于给定名称,存储的密码是使用 WHERE 子句从数据库中获取的。
通过使用 if 条件,我尝试比较从数据库中获取的密码和从 form.If 输入的密码,它们相等然后执行一些操作。如果不执行其他条件。但问题是我无法理解如何分配 if 条件。
我试过的如下所示。:
#!"C:\python34\python.exe"
import cgitb ,cgi
import sys
import mysql.connector
cgitb.enable()
form = cgi.FieldStorage()
print("Content-Type: text/html;charset=utf-8")
print()
# Get data from fields
first_name = form.getvalue('first_name')
password = form.getvalue('pass')
print (password)
conn = mysql.connector.connect(host='localhost',port='8051',
database='test',
user='root',
password='next')
cursor = conn.cursor()
if conn.is_connected():
print('Connected to MySQL database')
cursor.execute("""SELECT pass FROM tablename1 where name = '%s'""" % (first_name))
for row in cursor():
if(password == row):
print("sucess")
else:
print("fail")
请看我code.And给点建议
当用户第一次注册时,您应该这样保存他的密码:
$password = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
这应该输出类似 y$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
的内容
并且您应该将其存储在您的数据库中。
那么你应该像这样验证密码:
<?php
$hash = 'y$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq'; // you get it from your database
if (password_verify('rasmuslerdorf', $hash)) { // 'rasmuslerdorf' is what user entered
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
?>
现在,什么是散列?请阅读 this.
编辑:你的意思是这样的?
cursor.execute("SELECT * FROM users WHERE username= ? and password= ?",
(username, pass1))
found = cursor.fetchone()
if found:
# user exists and password matches
else:
# user does not exist or password does not match
我有 HTML 表格来获取名称和密码。python 代码用于获取输入数据并存储在变量 first_name 和密码中。
对于给定名称,存储的密码是使用 WHERE 子句从数据库中获取的。 通过使用 if 条件,我尝试比较从数据库中获取的密码和从 form.If 输入的密码,它们相等然后执行一些操作。如果不执行其他条件。但问题是我无法理解如何分配 if 条件。 我试过的如下所示。:
#!"C:\python34\python.exe"
import cgitb ,cgi
import sys
import mysql.connector
cgitb.enable()
form = cgi.FieldStorage()
print("Content-Type: text/html;charset=utf-8")
print()
# Get data from fields
first_name = form.getvalue('first_name')
password = form.getvalue('pass')
print (password)
conn = mysql.connector.connect(host='localhost',port='8051',
database='test',
user='root',
password='next')
cursor = conn.cursor()
if conn.is_connected():
print('Connected to MySQL database')
cursor.execute("""SELECT pass FROM tablename1 where name = '%s'""" % (first_name))
for row in cursor():
if(password == row):
print("sucess")
else:
print("fail")
请看我code.And给点建议
当用户第一次注册时,您应该这样保存他的密码:
$password = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
这应该输出类似 y$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
并且您应该将其存储在您的数据库中。
那么你应该像这样验证密码:
<?php
$hash = 'y$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq'; // you get it from your database
if (password_verify('rasmuslerdorf', $hash)) { // 'rasmuslerdorf' is what user entered
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
?>
现在,什么是散列?请阅读 this.
编辑:你的意思是这样的?
cursor.execute("SELECT * FROM users WHERE username= ? and password= ?",
(username, pass1))
found = cursor.fetchone()
if found:
# user exists and password matches
else:
# user does not exist or password does not match