2
import sys
import hashlib
import getpass
from passlib.hash import sha256_crypt
import MySQLdb, random, os


def SQLAddPass(username, password):
    SQL = 'insert into user values ("%s", "%s")' % (username, password)

    try:
        db = MySQLdb.connect (host='localhost', user='root', db='vedio')
        c = db.cursor()
        c.execute(SQL)
        db.commit()
        c.close()
        db.close()
        raw_input('Record Added - press enter to continue: ')
    except:
        print 'There was a problem adding the record'
        raw_input ('press enter to continue')


def main(argv):


    print '\nUser & Password Storage Program v.01\n'


    username = raw_input('Please Enter a User Name: ')
    password = sha256_crypt.encrypt(getpass.getpass('Please Enter a Password: '))

    try:
        SQLAddPass(username, password)

    except:
        sys.exit('There was a problem saving Record!')

    print '\nPassword safely stored in ' + sys.argv[1] + '\n'      

if __name__ == "__main__":
    main(sys.argv[1:])

私の問題は、スクリプトは機能しますが、次のエラーが発生することです**

(C:\Users\Elsie\Desktop\example.py:14: 警告: 行 1 の列 'パスワード' のデータが切り捨てられました c.execute(SQL) レコードが追加されました - Enter キーを押して続行します:

**

データベースに安全に保存されたパスワード。コードのアイデアや変更は大歓迎です)

4

2 に答える 2

1

行1の列'password'のデータが切り捨てられました

テーブルにたとえば10の長さのパスワード列があり、たとえば20のレコードを挿入していることを意味します。挿入したレコードは切り捨てられます。そして、パスワードは壊れます。

テーブルの列の長さを増やします

于 2013-02-20T09:10:49.437 に答える
0

'password'フィールドが短すぎる可能性があります。varchar(64)が必要です。パスワードフィールドの長さはどれくらいですか?

于 2013-02-20T09:08:30.340 に答える