apache 使用if条件来比较密码使用python

pw9qyyiw  于 2023-11-21  发布在  Apache
关注(0)|答案(2)|浏览(96)

我有一个HTML表单来获取名字和密码。Python代码用来获取输入数据并存储在变量first_name和password中。
对于给定的名称存储的密码是从数据库中使用WHERE子句获取.通过使用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")

字符串
请检查我的代码。并给予一些建议。

eqqqjvef

eqqqjvef1#

当用户第一次注册时,您应该像这样保存他的密码:

$password = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

字符串
这应该输出类似$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a的内容
你应该把它存储在你的数据库里。
然后你应该像这样验证密码:

<?php
$hash = '$2y$07$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.';
}
?>


什么是哈希?请读一下这个。
编辑:你是说像这样的东西吗?

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

8ljdwjyq

8ljdwjyq2#

哈哈,这是我迟来的答案,

cursor.execute(f"SELECT Password FROM users WHERE username= '{username}';")
found = cursor.fetchone()
for row in found:
    if found == row:
        # user exists and password matches
    else:
        # user does not exist or password does not match

字符串

相关问题