thisisishara commited on
Commit
05d7116
·
1 Parent(s): fd1c654

init commit

Browse files
.env ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ HOST=localhost
2
+ PORT=5000
3
+ DEBUG=true
Dockerfile ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ USER root
4
+
5
+ WORKDIR /app
6
+
7
+ COPY requirements.txt /app/
8
+ RUN pip install -r requirements.txt
9
+
10
+ COPY app.py /app/
11
+ COPY assets /app/assets
12
+ COPY instance /app/instance
13
+
14
+ RUN chmod -R 777 /app/instance
15
+
16
+
17
+ RUN pip install Flask
18
+
19
+ EXPOSE 5000
20
+
21
+ CMD ["python", "app.py"]
README.md CHANGED
@@ -1,11 +1,9 @@
1
  ---
2
  title: AuthSystem
3
- emoji: 📚
4
- colorFrom: indigo
5
- colorTo: gray
6
  sdk: docker
 
7
  pinned: false
8
- license: apache-2.0
9
- ---
10
-
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
  title: AuthSystem
3
+ emoji: 🔐
4
+ colorFrom: red
5
+ colorTo: yellow
6
  sdk: docker
7
+ app_port: 5000
8
  pinned: false
9
+ ---
 
 
 
app.py ADDED
@@ -0,0 +1,334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import os
3
+ import re
4
+ from datetime import datetime, timedelta
5
+
6
+ from argon2 import PasswordHasher
7
+ from dotenv import load_dotenv
8
+ from flask import Flask, request, jsonify, render_template
9
+ from flask_sqlalchemy import SQLAlchemy
10
+ from sqlalchemy.exc import IntegrityError
11
+
12
+ # load environment vars from .env
13
+ load_dotenv(".env")
14
+
15
+ logger = logging.getLogger(__name__)
16
+
17
+ app = Flask(__name__, template_folder="assets", static_folder="assets")
18
+ app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///users.db"
19
+ db = SQLAlchemy(app)
20
+ hasher = PasswordHasher()
21
+
22
+ HOST = os.environ.get("HOST", "0.0.0.0")
23
+ PORT = int(os.environ.get("PORT", 5000))
24
+ DEBUG = True if str(os.environ.get("DEBUG", "true")).lower() == "true" else False
25
+ MAX_LOGIN_ATTEMPTS = 10
26
+ LOCKOUT_DURATION = timedelta(seconds=60)
27
+
28
+ COMMON_SWEAR_WORDS = [
29
+ "fuck", "shit", "bitch", "asshole", "bastard", "cunt", "dick", "cock", "pussy",
30
+ "motherfucker", "wanker", "twat", "bollocks", "arsehole", "crap", "damn", "bugger",
31
+ "bloody", "sod", "git", "idiot", "moron", "prick", "slut", "whore", "nigger", "retard"
32
+ ]
33
+ CHARACTER_SUBSTITUTIONS = {
34
+ "0": "o",
35
+ "1": "i",
36
+ "3": "e",
37
+ "4": "a",
38
+ "5": "s",
39
+ "6": "g",
40
+ "7": "t",
41
+ "8": "b",
42
+ "9": "g",
43
+ "@": "a",
44
+ "$": "s",
45
+ "!": "i"
46
+ }
47
+
48
+
49
+ def load_passwords_from_file(file_path: str) -> set:
50
+ """Loads passwords from a file specified"""
51
+ try:
52
+ with open(file_path, 'r') as file:
53
+ passwords = set(file.read().splitlines())
54
+ return passwords
55
+
56
+ except Exception as e:
57
+ logger.exception(f"Error occurred while retrieving passwords. {str(e)}")
58
+ return set()
59
+
60
+
61
+ WEAK_PASSWORDS = load_passwords_from_file('assets/weakpasswords.txt')
62
+ BREACHED_PASSWORDS = load_passwords_from_file('assets/breachedpasswords.txt')
63
+ BREACHED_PASSWORDS_LOWER = [p.lower() for p in BREACHED_PASSWORDS]
64
+
65
+
66
+ # create a sqlite model for
67
+ # storing user data
68
+ class User(db.Model):
69
+ id = db.Column(db.Integer, primary_key=True)
70
+ username = db.Column(db.String(80), unique=True, nullable=False)
71
+ hashed_password = db.Column(db.String(256), nullable=False)
72
+ salt = db.Column(db.String(16), nullable=False)
73
+ login_attempts = db.Column(db.Integer, default=0)
74
+ last_login_time = db.Column(db.DateTime, default=datetime.utcnow)
75
+
76
+
77
+ # create database tables
78
+ with app.app_context():
79
+ db.create_all()
80
+
81
+
82
+ # custom exception definitions
83
+ class CredentialValidationError(Exception):
84
+ def __init__(self, message):
85
+ self.message = message
86
+ super().__init__(message)
87
+
88
+
89
+ def apply_character_substitutions(word):
90
+ """Converts a char or number substituted
91
+ word into its original representation"""
92
+ for original, replacement in CHARACTER_SUBSTITUTIONS.items():
93
+ word = word.replace(original, replacement)
94
+ return word
95
+
96
+
97
+ def validate_username(username: str) -> None:
98
+ """Validates the username by checking
99
+ it against a pre-defined ruleset"""
100
+
101
+ # 1. raise a validation exception if username
102
+ # contains non-alphanumeric chars other than
103
+ # the underscore
104
+ if not re.match(r'^[a-zA-Z0-9_]+$', username):
105
+ raise CredentialValidationError("Invalid username")
106
+
107
+ # 2. raise a validation exception when the
108
+ # username contains a commonly used swear word
109
+ if any(word in username.lower() for word in COMMON_SWEAR_WORDS):
110
+ raise CredentialValidationError("Username cannot contain swear words")
111
+
112
+ # 3. raises when users attempt to bypass the
113
+ # above rule using symbol and number substitutions
114
+ if any(word in apply_character_substitutions(username.lower()) for word in COMMON_SWEAR_WORDS):
115
+ raise CredentialValidationError(
116
+ "Username contains a symbol or number substituted swear word"
117
+ )
118
+
119
+
120
+ def validate_password(username: str, password: str) -> None:
121
+ """Validates a user password according
122
+ to the NISP password guidelines"""
123
+
124
+ # 1. Length: At least 8 characters
125
+ if len(password) < 8:
126
+ raise CredentialValidationError(
127
+ "The password must be at least 8 characters long"
128
+ )
129
+
130
+ # 2. Complexity: Overly complex rules
131
+ # will not be enforced
132
+
133
+ # 3. Composition: Disallowing consequent
134
+ # characters if consequent char count > 3
135
+ if bool(re.search(r'(.)\1\1+', password)):
136
+ raise CredentialValidationError(
137
+ "The password cannot contain 3 or more "
138
+ "consequent repeated characters"
139
+ )
140
+
141
+ # 4. Expiration: Password expiration is
142
+ # not checked since it's not recommended
143
+ # to frequently expire passwords
144
+
145
+ # 5. Similarity to username: If exactly or
146
+ # partially similar to the username, an
147
+ # exception will be raised
148
+ if username.lower() in password.lower():
149
+ raise CredentialValidationError(
150
+ "The password cannot be similar to the username"
151
+ )
152
+ if apply_character_substitutions(username.lower()) == apply_character_substitutions(password.lower()):
153
+ raise CredentialValidationError(
154
+ "The password cannot be similar to the username, "
155
+ "even with character and number substitutions"
156
+ )
157
+
158
+ # 6. Data Breaches and Weak Passwords: any weak
159
+ # password or breached passwords are disallowed
160
+ if password in WEAK_PASSWORDS:
161
+ raise CredentialValidationError(
162
+ "Password is too weak. Please try again with a strong password"
163
+ )
164
+ if password in BREACHED_PASSWORDS:
165
+ raise CredentialValidationError(
166
+ "Found the password in an already breached password dictionary, "
167
+ "thus not secure. Please try again with a strong password"
168
+ )
169
+ if password.lower() in BREACHED_PASSWORDS_LOWER:
170
+ raise CredentialValidationError(
171
+ "Password is very similar to a password in an already breached "
172
+ "password dictionary. Please try again with a strong password"
173
+ )
174
+
175
+
176
+ def hash_password(password) -> tuple[str, ...]:
177
+ try:
178
+ salt = os.urandom(16)
179
+ hashed_password = hasher.hash(password + salt.hex())
180
+ return hashed_password, salt.hex()
181
+
182
+ except Exception as e:
183
+ logger.exception("Couldn't hash the password")
184
+ raise e
185
+
186
+
187
+ def verify_password(hashed_password, password, salt) -> bool:
188
+ try:
189
+ hasher.verify(hashed_password, password + salt)
190
+ return True
191
+
192
+ except Exception as e:
193
+ logger.exception(f"Couldn't verify the password. {str(e)}")
194
+ return False
195
+
196
+
197
+ @app.route("/")
198
+ def homepage():
199
+ return render_template("index.html")
200
+
201
+
202
+ @app.route("/enroll")
203
+ def enroll_page():
204
+ return render_template("enroll.html")
205
+
206
+
207
+ @app.route("/api/enroll", methods=["POST"])
208
+ def enroll():
209
+ """Enrolling new users"""
210
+ try:
211
+ data = request.get_json()
212
+ username = data.get("username")
213
+ password = data.get("password")
214
+
215
+ validate_username(username=username)
216
+ validate_password(username=username, password=password)
217
+
218
+ # securely hashing the password
219
+ # and storing it in the sqlite db
220
+ hashed_password, salt = hash_password(password)
221
+ user = User(username=username.lower(), hashed_password=hashed_password, salt=salt)
222
+ db.session.add(user)
223
+ db.session.commit()
224
+
225
+ return jsonify({"message": "User enrolled successfully"}), 200
226
+
227
+ except CredentialValidationError as e:
228
+ logger.exception(str(e))
229
+ return jsonify({"error": str(e)}), 400
230
+ except IntegrityError as e:
231
+ logger.exception(str(e))
232
+ return jsonify({"error": "Username is already taken"}), 409
233
+ except Exception as e:
234
+ logger.exception(str(e))
235
+ return jsonify({"error": "Internal Server Error", "details": str(e)}), 500
236
+
237
+
238
+ @app.route("/api/authenticate", methods=["POST"])
239
+ def authenticate():
240
+ """Authenticates a user based
241
+ on user credentials"""
242
+ try:
243
+ data = request.get_json()
244
+ username = data.get("username")
245
+ password = data.get("password")
246
+
247
+ # 2FA/MFA: NIST entertains 2FA or MFA, but here it
248
+ # is not imposed due to its implementation complexity
249
+
250
+ user = User.query.filter_by(username=username.lower()).first()
251
+
252
+ if user is None:
253
+ return jsonify({"error": "User not found"}), 404
254
+
255
+ # Retry attempts: Users are given 10 consequent
256
+ # login attempts until they're locked out
257
+ if user.login_attempts >= MAX_LOGIN_ATTEMPTS:
258
+ lockout_time = user.last_login_time + LOCKOUT_DURATION
259
+ remaining_duration = lockout_time - datetime.utcnow()
260
+ if remaining_duration.total_seconds() > 0:
261
+ remaining_seconds = int(remaining_duration.total_seconds())
262
+ minutes, seconds = divmod(remaining_seconds, 60)
263
+ if minutes > 0:
264
+ remaining_time_str = f"{minutes} minute(s) and {seconds} second(s)"
265
+ else:
266
+ remaining_time_str = f"{seconds} second(s)"
267
+ return jsonify(
268
+ {
269
+ "error": f"Account locked out. Try again in {remaining_time_str}"
270
+ }
271
+ ), 401
272
+ else:
273
+ user.login_attempts = 0
274
+ user.last_login_time = datetime.utcnow()
275
+ db.session.commit()
276
+
277
+ # Verify the password
278
+ if not verify_password(user.hashed_password, password, user.salt):
279
+ user.login_attempts += 1
280
+ user.last_login_time = datetime.utcnow()
281
+ db.session.commit()
282
+ if user.login_attempts >= MAX_LOGIN_ATTEMPTS:
283
+ remaining_time = int(LOCKOUT_DURATION.total_seconds())
284
+ minutes, seconds = divmod(remaining_time, 60)
285
+ if minutes > 0:
286
+ remaining_time_str = f"{minutes} minute(s) and {seconds} second(s)"
287
+ else:
288
+ remaining_time_str = f"{seconds} second(s)"
289
+ return jsonify({"error": f"Account locked out. Try again in {remaining_time_str}"}), 401
290
+
291
+ return jsonify({"error": "Invalid password"}), 401
292
+
293
+ # Reset if a valid login attempt
294
+ user.login_attempts = 0
295
+ user.last_login_time = datetime.utcnow()
296
+ db.session.commit()
297
+ return jsonify({"message": f"Authentication successful. Welcome @{username.lower()}!"}), 200
298
+
299
+ except Exception as e:
300
+ logger.exception(str(e))
301
+ return jsonify({"error": "Internal Server Error", "details": str(e)}), 500
302
+
303
+
304
+ @app.route("/api/users", methods=["GET"])
305
+ def get_users():
306
+ """Retrieves the list of all users"""
307
+ try:
308
+ users = User.query.all()
309
+ user_list = [{"id": user.id, "username": user.username} for user in users]
310
+ return jsonify(user_list), 200
311
+
312
+ except Exception as e:
313
+ logger.exception(str(e))
314
+ return jsonify({"error": "Internal Server Error", "details": str(e)}), 500
315
+
316
+
317
+ @app.route("/api/users/<string:username>", methods=["DELETE"])
318
+ def delete_user(username):
319
+ """Deletes a user by username"""
320
+ try:
321
+ user = User.query.filter_by(username=username.lower()).first()
322
+ if user is None:
323
+ return jsonify({"error": "User not found"}), 404
324
+ db.session.delete(user)
325
+ db.session.commit()
326
+ return jsonify({"message": "User deleted successfully"}), 200
327
+
328
+ except Exception as e:
329
+ logger.exception(str(e))
330
+ return jsonify({"error": "Internal Server Error", "details": str(e)}), 500
331
+
332
+
333
+ if __name__ == "__main__":
334
+ app.run(host=HOST, port=PORT, debug=DEBUG)
app.spec ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- mode: python ; coding: utf-8 -*-
2
+
3
+
4
+ a = Analysis(
5
+ ['app.py'],
6
+ pathex=[],
7
+ binaries=[],
8
+ datas=[('assets', 'assets')],
9
+ hiddenimports=[],
10
+ hookspath=[],
11
+ hooksconfig={},
12
+ runtime_hooks=[],
13
+ excludes=[],
14
+ noarchive=False,
15
+ )
16
+ pyz = PYZ(a.pure)
17
+
18
+ exe = EXE(
19
+ pyz,
20
+ a.scripts,
21
+ a.binaries,
22
+ a.datas,
23
+ [],
24
+ name='app',
25
+ debug=False,
26
+ bootloader_ignore_signals=False,
27
+ strip=False,
28
+ upx=True,
29
+ upx_exclude=[],
30
+ runtime_tmpdir=None,
31
+ console=True,
32
+ disable_windowed_traceback=False,
33
+ argv_emulation=False,
34
+ target_arch=None,
35
+ codesign_identity=None,
36
+ entitlements_file=None,
37
+ icon=['assets\\app.ico'],
38
+ )
assets/app.ico ADDED
assets/breachedpasswords.txt ADDED
@@ -0,0 +1,594 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ password1
2
+ abc123
3
+ monkey1
4
+ iloveyou1
5
+ myspace1
6
+ fuckyou1
7
+ number1
8
+ football1
9
+ nicole1
10
+ 123456
11
+ iloveyou2
12
+ 123abc
13
+ princess1
14
+ bubbles1
15
+ blink182
16
+ babygirl1
17
+ 123456a
18
+ qwerty1
19
+ jordan1
20
+ iloveyou
21
+ password.
22
+ passw0rd
23
+ panda1
24
+ nirvana1
25
+ matthew1
26
+ marie1
27
+ loveme1
28
+ joshua1
29
+ iloveyou3
30
+ hollister1
31
+ hello1
32
+ green1
33
+ fuckoff
34
+ fluffy1
35
+ elizabeth1
36
+ chocolate!
37
+ a123456789
38
+ RAYRAY1
39
+ OMG1195
40
+ DIPSET1
41
+ @aol.com
42
+ 462518n
43
+ 36mafia
44
+ 2hot4u
45
+ 2bowweezy
46
+ 1sister
47
+ 1q2w3e
48
+ 1lover
49
+ 1bitch
50
+ 12345
51
+ 1234
52
+ 123123
53
+ 100689b
54
+ zxr400
55
+ zxcvbnm,./
56
+ @sshole
57
+ @ss%7777
58
+ ????(L)
59
+ 9hoktes
60
+ 9duchess9
61
+ 973bori
62
+ 957wanta42
63
+ 9507sc
64
+ 9170xxxx
65
+ 8lackdevil
66
+ 7714forlif
67
+ 7581
68
+ 6fingers
69
+ 6ELTTEN
70
+ 69love
71
+ 67mustang
72
+ 5pokemon
73
+ 5779266adam
74
+ 56fres
75
+ 4apples
76
+ 495n4285
77
+ 4271981cs
78
+ 4235
79
+ 420hi420
80
+ 4201531NY
81
+ 4191669baby
82
+ 41185rk
83
+ 3littlebirds
84
+ 3591ford
85
+ 3440dd
86
+ 339273E
87
+ 312269
88
+ 3063373k
89
+ 3000gtvr4
90
+ 2sexy4u
91
+ 2htsobs
92
+ 2hearts
93
+ 2friends
94
+ 2cute4u
95
+ 265611a
96
+ 2525sam
97
+ 23jordan23
98
+ 21SIMONE
99
+ 1truelove
100
+ 1tigger
101
+ 1skate
102
+ 1sexybeast
103
+ 1rasputin
104
+ 1qa2ws
105
+ 1q2w3e4r
106
+ 1playboy
107
+ 1o1892C
108
+ 1mexico
109
+ 1luisa
110
+ 1loveyou
111
+ 1loveu2
112
+ 1loveu
113
+ 1loveoonagh
114
+ 1lovehim
115
+ 1lokas
116
+ 1kitty
117
+ 1ilove
118
+ 1hottie
119
+ 1helpme
120
+ 1hannah
121
+ 1guitar
122
+ 1g2i3z4z5m6o
123
+ 1fuckyou
124
+ 1friends
125
+ 1cutie
126
+ 1ciara
127
+ 1chrisbrown
128
+ 1chocolate
129
+ 1chicken
130
+ 1MAMASITA
131
+ 1967nala
132
+ 188824r
133
+ 1716buni
134
+ 16188s
135
+ 13lindsay
136
+ 1345432n
137
+ 124life
138
+ 124578b
139
+ 123zac
140
+ 123giveittome
141
+ 1234ash
142
+ 12345t
143
+ 12345q
144
+ 12345j
145
+ 123456s
146
+ 123456p
147
+ 123456m
148
+ 123456l
149
+ 123456k
150
+ 1234567a
151
+ 123456789a
152
+ 1234567890
153
+ 123456789
154
+ 111111
155
+ 1024cd
156
+ 0boysdontcry
157
+ 0LASHAWN
158
+ 050589s
159
+ 0324869
160
+ 032453kp
161
+ *will*
162
+ *DIXON*
163
+ ****kz
164
+ #1moomoo
165
+ ~~lily~~
166
+ ~raymond
167
+ ~monkey
168
+ ~molta69~
169
+ ~iRENE
170
+ ~coco~
171
+ ~chanel~
172
+ ~SP00KY~
173
+ ~Irene~
174
+ ~*~love~*~
175
+ ~*~THATFINEST~*~
176
+ wrongpassword
177
+ wrists9
178
+ wrinkle2
179
+ wrinkle1
180
+ wrigj04
181
+ wrftball07
182
+ wrfafa
183
+ wrether123
184
+ wrestling2
185
+ wrestling09
186
+ wrestling0
187
+ wrestling!
188
+ wrestlers160
189
+ wrestler77
190
+ wrestler10
191
+ wrestler06-m.s.
192
+ wren1960
193
+ wrekone1
194
+ wreckless15
195
+ wow5544
196
+ wow1983
197
+ wow123
198
+ wotsits1
199
+ worthlesspieceofshit
200
+ unluckyhackinglucktime
201
+ unix73xe
202
+ universal1
203
+ unity41
204
+ united21
205
+ united2
206
+ united13
207
+ united101
208
+ united06
209
+ united05
210
+ t.o.81
211
+ t.j.12
212
+ t.i.02
213
+ t.carter
214
+ t-rod179
215
+ t-mac1
216
+ t-king
217
+ t7777777
218
+ t
219
+ szitting2007
220
+ sziszy3
221
+ szarhazi
222
+ sz1969
223
+ systems1
224
+ system3
225
+ sysex02
226
+ syracuse3
227
+ synt45
228
+ syn6661
229
+ syida_am
230
+ syeda202
231
+ sydney90
232
+ sydney77
233
+ sydney555
234
+ sydney504
235
+ sydney2
236
+ sydney1
237
+ sydney09
238
+ sydenham1
239
+ sycocity22
240
+ sycobitch1
241
+ sycamore!
242
+ sybgm10
243
+ syan100
244
+ sxifrank1
245
+ sxcgal6
246
+ sxcdana1
247
+ sxcbeast!
248
+ sxc268
249
+ swxy69
250
+ swords5
251
+ swordfish9
252
+ swordfish16
253
+ swordfish1
254
+ sword99
255
+ swmoke6
256
+ switch5
257
+ swiper123
258
+ swingtree0
259
+ swingset8
260
+ swinger5352
261
+ swimming7
262
+ swimming1@
263
+ swimmer91
264
+ swimmer06
265
+ swimmer*69
266
+ swimfast04
267
+ swim20
268
+ swim131415
269
+ swim11
270
+ swiger77
271
+ swez46
272
+ swetbaby1
273
+ swep3rs
274
+ swell1
275
+ sweetz
276
+ sweety7
277
+ sweety13
278
+ sweety1
279
+ sweety*
280
+ sweetx3
281
+ sweettie4
282
+ sweettart1
283
+ sweets3
284
+ sweets123
285
+ sweets1
286
+ sweetpie1
287
+ sweetpea.
288
+ sweetp25
289
+ sweetness3
290
+ sweetness2
291
+ sweetness13
292
+ sweetness1
293
+ sweeties!
294
+ sweetie66
295
+ sweetie101
296
+ sweetie00
297
+ sweetie.ee
298
+ sweetgirl1
299
+ sweetgirl
300
+ sweetest1
301
+ sweeter
302
+ sweetdeal2
303
+ sweetbaby1
304
+ sweetass
305
+ sweet_love
306
+ sweet9
307
+ sweet89
308
+ sweet79
309
+ sweet77
310
+ sweet75
311
+ sweet67
312
+ sweet6
313
+ sweet5
314
+ sweet4209
315
+ stoptryingtohackpeople
316
+ stopspamming
317
+ stopitnow15
318
+ stopit14
319
+ stophackingfag
320
+ stophack23
321
+ stop70
322
+ stop12
323
+ stopmadness
324
+ stopyoufaggot.
325
+ stoopid1
326
+ stooch1a
327
+ stonesour!
328
+ stoners3
329
+ stonerage!
330
+ stoner420
331
+ stoner1
332
+ stonecold11
333
+ stone34
334
+ stokecity
335
+ stoke
336
+ stoddart12
337
+ stock1
338
+ stobe3
339
+ stmatt32
340
+ stlcards1
341
+ stj1mmy
342
+ stixx08
343
+ stitches2
344
+ stitches12
345
+ stissing
346
+ stinois1
347
+ stinky91
348
+ stinky57
349
+ stinks.
350
+ stinkhole1
351
+ stinker3
352
+ stinker1
353
+ stinker.
354
+ stingray5
355
+ stingray
356
+ sting92
357
+ sting46
358
+ stillman61
359
+ stiller22
360
+ stiggy!
361
+ stiffler2
362
+ stickzach9
363
+ sticky05
364
+ stickney1
365
+ stick666
366
+ stick21
367
+ stick1
368
+ stfumang.
369
+ stfum3hoe
370
+ stfubetch1
371
+ stfu123
372
+ stfu11
373
+ stfugetlife.
374
+ stfstf1
375
+ stews2
376
+ stewie13
377
+ stewart73
378
+ stewart7
379
+ stewart6
380
+ stewart20
381
+ stevo91
382
+ stevo.
383
+ stevielee313
384
+ steviej!
385
+ stevie136
386
+ stevie12
387
+ steveo33
388
+ steveo1
389
+ stevenson1
390
+ stevensd92
391
+ stevenjo3l
392
+ steven21
393
+ steven20
394
+ steven2
395
+ steven.
396
+ steven!
397
+ steven
398
+ stevemw77
399
+ steve71985
400
+ steve666
401
+ steve420
402
+ steve0
403
+ steve
404
+ steuby
405
+ stetson10
406
+ sterling13
407
+ sterling01
408
+ sterilox02
409
+ stereo1
410
+ stepup76
411
+ stepup333
412
+ stepup323
413
+ stepup1
414
+ stepsno1fan
415
+ steppy5
416
+ stephon03
417
+ stepho89
418
+ stephl2
419
+ stephie7
420
+ stephie1750
421
+ stephh222
422
+ stephen5584
423
+ stephen3
424
+ stephen12
425
+ stephcore18
426
+ stephanie6
427
+ stephanie23enm56
428
+ stephanie13
429
+ stephanie123
430
+ stephan
431
+ stephal1
432
+ steph3788
433
+ steph182
434
+ steph11
435
+ steph007
436
+ stepanie6
437
+ stensrud.
438
+ stellbell
439
+ stellar1
440
+ stella1
441
+ steffon95
442
+ steffie_14
443
+ steffie_114
444
+ stefani9
445
+ stefani19
446
+ stef90
447
+ stef710
448
+ steeny1
449
+ steen4
450
+ steelpen1
451
+ steelhair23
452
+ steelers86
453
+ steelers36
454
+ steelers2
455
+ steelers15
456
+ steelers12
457
+ steelers#7
458
+ steeler86
459
+ steeler1
460
+ stealmypassword
461
+ stealingpasswords?
462
+ 2savage1
463
+ 2s2b4g
464
+ 2roijaui
465
+ 2rhodecollege
466
+ 2r391l1424
467
+ 2puppydog
468
+ 2potheads
469
+ 2pints!
470
+ 2pimpdacad
471
+ 2piggies
472
+ 2phoenix
473
+ 2pac69
474
+ 2pac1992
475
+ 2orions
476
+ 2orange
477
+ 2oragnes
478
+ 2ootall10
479
+ 2nikkbre
480
+ 2myspace
481
+ 2momanddad
482
+ 27272a
483
+ 2722barth
484
+ 270383
485
+ 26janelle
486
+ 2697gz
487
+ 2692519aa
488
+ 2663tay
489
+ 2663cu
490
+ 265115inc
491
+ 2639ab
492
+ 263806kt
493
+ 263732p
494
+ 261981t
495
+ 261707m
496
+ 261186
497
+ 261153mmm
498
+ 260britt
499
+ 26081985s
500
+ 260390a
501
+ 25ringgold
502
+ 25jan93
503
+ 25angels
504
+ 25acuras
505
+ 25acura
506
+ 259925sk
507
+ 259925
508
+ 25896l
509
+ 2586794k
510
+ 257397892
511
+ 257095j
512
+ 25678er51
513
+ 255611683k
514
+ 2554Zachary
515
+ 25425632
516
+ 253skittz1
517
+ 2527852l
518
+ 2512avon
519
+ 2508shortie
520
+ 250506jack
521
+ 250187o
522
+ 250120sg
523
+ 24yelhsa37
524
+ 2205Jb!
525
+ 220547s
526
+ 2200PALORA
527
+ 21tiki
528
+ .ireland.
529
+ .farewell
530
+ .famil
531
+ .daygar1
532
+ .commar113
533
+ .com4u
534
+ .com
535
+ .colchones
536
+ .boutiquedemerde
537
+ .bekki4chr
538
+ .babydoll.
539
+ .05tml
540
+ ...mmm
541
+ ...84621ap
542
+ ...
543
+ .,m.,m
544
+ -sugarsweee
545
+ -slayerr
546
+ -sailorsaturn-
547
+ -rich-
548
+ -rhcp-
549
+ -pickle07
550
+ -pickle06
551
+ -l-e-z-1
552
+ -flexa-
553
+ -fergie-
554
+ -darkside
555
+ -csa-sniper-
556
+ -*
557
+ ,,chrisd
558
+ +zebrahead
559
+ +slaughter
560
+
561
+ !yamaha
562
+ !tigger
563
+ !tiger
564
+ !tazz!
565
+ !taytay!
566
+ !stupid
567
+ !stewart
568
+ !spain!
569
+ !shootpower!
570
+ !pmoney
571
+ !parksbisawesome
572
+ !myk!!
573
+ !mthr3w.0u=
574
+ !missmyboo
575
+ !meandhim
576
+ !magnum
577
+ !luvzuz
578
+ !loverockandroll
579
+ !lovehp
580
+ !kendra!
581
+ !jason
582
+ !gravier!
583
+ !fuckyou!
584
+ !fuckoff
585
+ !elpoo
586
+ !dieman!
587
+ !daintofpunk!
588
+ !chimpboi!
589
+ !callie
590
+ !brianna!
591
+ !1001dk
592
+ !!!sara
593
+ !!!gerard!!!
594
+ rincess4life
assets/enroll.html ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Enroll</title>
7
+ <link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='app.ico') }}">
8
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
10
+ </head>
11
+ <body>
12
+ <div class="container">
13
+ <h1>Enroll</h1>
14
+ <form id="signup-form">
15
+ <div class="input-field">
16
+ <input type="text" id="username" name="username" required>
17
+ <label for="username">Username</label>
18
+ </div>
19
+ <div class="input-field">
20
+ <input type="password" id="password" name="password" required>
21
+ <label for="password">Password</label>
22
+ <i class="material-icons toggle-password" onclick="togglePasswordVisibility()">visibility_off</i>
23
+ </div>
24
+ <button class="btn waves-effect waves-light green darken-1" type="submit" name="action">Enroll
25
+ <i class="material-icons right">send</i>
26
+ </button>
27
+ </form>
28
+ <p>Already have an account? <a href="/">Authenticate</a></p>
29
+ </div>
30
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
31
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
32
+ <script>
33
+ function togglePasswordVisibility() {
34
+ var passwordInput = document.getElementById("password");
35
+ var toggleIcon = document.querySelector(".toggle-password");
36
+
37
+ if (passwordInput.type === "password") {
38
+ passwordInput.type = "text";
39
+ toggleIcon.textContent = "visibility";
40
+ } else {
41
+ passwordInput.type = "password";
42
+ toggleIcon.textContent = "visibility_off";
43
+ }
44
+ }
45
+
46
+ $(document).ready(function(){
47
+ $('#signup-form').submit(function(e){
48
+ e.preventDefault();
49
+ $.ajax({
50
+ url: '/api/enroll',
51
+ method: 'POST',
52
+ contentType: 'application/json',
53
+ data: JSON.stringify({
54
+ username: $('#username').val(),
55
+ password: $('#password').val()
56
+ }),
57
+ success: function(response){
58
+ M.toast({html: response.message});
59
+ },
60
+ error: function(xhr, status, error){
61
+ M.toast({html: xhr.responseJSON.error});
62
+ }
63
+ });
64
+ });
65
+ });
66
+ </script>
67
+ </body>
68
+ </html>
assets/index.html ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Authenticate</title>
7
+ <link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='app.ico') }}">
8
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
10
+ </head>
11
+ <body>
12
+ <div class="container">
13
+ <h1>Authenticate</h1>
14
+ <form id="auth-form">
15
+ <div class="input-field">
16
+ <input type="text" id="username" name="username" required>
17
+ <label for="username">Username</label>
18
+ </div>
19
+ <div class="input-field">
20
+ <input type="password" id="password" name="password" required>
21
+ <label for="password">Password</label>
22
+ <i class="material-icons toggle-password" onclick="togglePasswordVisibility()">visibility_off</i>
23
+ </div>
24
+ <button class="btn waves-effect waves-light green darken-1" type="submit" name="action">Authenticate
25
+ <i class="material-icons right">send</i>
26
+ </button>
27
+ </form>
28
+ <p>Don't have an account? <a href="/enroll">Enroll</a></p>
29
+ </div>
30
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
31
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
32
+ <script>
33
+ function togglePasswordVisibility() {
34
+ var passwordInput = document.getElementById("password");
35
+ var toggleIcon = document.querySelector(".toggle-password");
36
+
37
+ if (passwordInput.type === "password") {
38
+ passwordInput.type = "text";
39
+ toggleIcon.textContent = "visibility";
40
+ } else {
41
+ passwordInput.type = "password";
42
+ toggleIcon.textContent = "visibility_off";
43
+ }
44
+ }
45
+
46
+ $(document).ready(function(){
47
+ $('#auth-form').submit(function(e){
48
+ e.preventDefault();
49
+ $.ajax({
50
+ url: '/api/authenticate',
51
+ method: 'POST',
52
+ contentType: 'application/json',
53
+ data: JSON.stringify({
54
+ username: $('#username').val(),
55
+ password: $('#password').val()
56
+ }),
57
+ success: function(response){
58
+ M.toast({html: response.message});
59
+ },
60
+ error: function(xhr, status, error){
61
+ M.toast({html: xhr.responseJSON.error});
62
+ }
63
+ });
64
+ });
65
+ });
66
+ </script>
67
+ </body>
68
+ </html>
assets/weakpasswords.txt ADDED
@@ -0,0 +1,512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 123456
2
+ 12345
3
+ 123456789
4
+ password
5
+ iloveyou
6
+ princess
7
+ 1234567
8
+ 12345678
9
+ abc123
10
+ nicole
11
+ daniel
12
+ babygirl
13
+ monkey
14
+ lovely
15
+ jessica
16
+ 654321
17
+ michael
18
+ ashley
19
+ qwerty
20
+ 111111
21
+ iloveu
22
+ 000000
23
+ michelle
24
+ tigger
25
+ sunshine
26
+ chocolate
27
+ password1
28
+ soccer
29
+ anthony
30
+ friends
31
+ butterfly
32
+ purple
33
+ angel
34
+ jordan
35
+ liverpool
36
+ justin
37
+ loveme
38
+ fuckyou
39
+ 123123
40
+ football
41
+ secret
42
+ andrea
43
+ carlos
44
+ jennifer
45
+ joshua
46
+ bubbles
47
+ 1234567890
48
+ superman
49
+ hannah
50
+ amanda
51
+ loveyou
52
+ pretty
53
+ basketball
54
+ andrew
55
+ angels
56
+ tweety
57
+ flower
58
+ playboy
59
+ hello
60
+ elizabeth
61
+ hottie
62
+ tinkerbell
63
+ charlie
64
+ samantha
65
+ barbie
66
+ chelsea
67
+ lovers
68
+ teamo
69
+ jasmine
70
+ brandon
71
+ 666666
72
+ shadow
73
+ melissa
74
+ eminem
75
+ matthew
76
+ robert
77
+ danielle
78
+ forever
79
+ family
80
+ jonathan
81
+ 987654321
82
+ computer
83
+ whatever
84
+ dragon
85
+ vanessa
86
+ cookie
87
+ naruto
88
+ summer
89
+ sweety
90
+ spongebob
91
+ joseph
92
+ junior
93
+ softball
94
+ taylor
95
+ yellow
96
+ daniela
97
+ lauren
98
+ mickey
99
+ princesa
100
+ alexandra
101
+ alexis
102
+ jesus
103
+ estrella
104
+ miguel
105
+ william
106
+ thomas
107
+ beautiful
108
+ mylove
109
+ angela
110
+ poohbear
111
+ patrick
112
+ iloveme
113
+ sakura
114
+ adrian
115
+ alexander
116
+ destiny
117
+ christian
118
+ 121212
119
+ sayang
120
+ america
121
+ dancer
122
+ monica
123
+ richard
124
+ 112233
125
+ princess1
126
+ 555555
127
+ diamond
128
+ carolina
129
+ steven
130
+ rangers
131
+ louise
132
+ orange
133
+ 789456
134
+ 999999
135
+ shorty
136
+ 11111
137
+ nathan
138
+ snoopy
139
+ gabriel
140
+ hunter
141
+ cherry
142
+ killer
143
+ sandra
144
+ alejandro
145
+ buster
146
+ george
147
+ brittany
148
+ alejandra
149
+ patricia
150
+ rachel
151
+ tequiero
152
+ 7777777
153
+ cheese
154
+ 159753
155
+ arsenal
156
+ dolphin
157
+ antonio
158
+ heather
159
+ david
160
+ ginger
161
+ stephanie
162
+ peanut
163
+ blink182
164
+ sweetie
165
+ 222222
166
+ beauty
167
+ 987654
168
+ victoria
169
+ honey
170
+ 00000
171
+ fernando
172
+ pokemon
173
+ maggie
174
+ corazon
175
+ chicken
176
+ pepper
177
+ cristina
178
+ rainbow
179
+ kisses
180
+ manuel
181
+ myspace
182
+ rebelde
183
+ angel1
184
+ ricardo
185
+ babygurl
186
+ heaven
187
+ 55555
188
+ baseball
189
+ martin
190
+ greenday
191
+ november
192
+ alyssa
193
+ madison
194
+ mother
195
+ 123321
196
+ 123abc
197
+ mahalkita
198
+ batman
199
+ september
200
+ december
201
+ morgan
202
+ mariposa
203
+ maria
204
+ gabriela
205
+ iloveyou2
206
+ bailey
207
+ jeremy
208
+ pamela
209
+ kimberly
210
+ gemini
211
+ shannon
212
+ pictures
213
+ asshole
214
+ sophie
215
+ jessie
216
+ hellokitty
217
+ claudia
218
+ babygirl1
219
+ angelica
220
+ austin
221
+ mahalko
222
+ victor
223
+ horses
224
+ tiffany
225
+ mariana
226
+ eduardo
227
+ andres
228
+ courtney
229
+ booboo
230
+ kissme
231
+ harley
232
+ ronaldo
233
+ iloveyou1
234
+ precious
235
+ october
236
+ inuyasha
237
+ peaches
238
+ veronica
239
+ chris
240
+ 888888
241
+ adriana
242
+ cutie
243
+ james
244
+ banana
245
+ prince
246
+ friend
247
+ jesus1
248
+ crystal
249
+ celtic
250
+ zxcvbnm
251
+ edward
252
+ oliver
253
+ diana
254
+ samsung
255
+ freedom
256
+ angelo
257
+ kenneth
258
+ master
259
+ scooby
260
+ carmen
261
+ 456789
262
+ sebastian
263
+ rebecca
264
+ jackie
265
+ spiderman
266
+ christopher
267
+ karina
268
+ johnny
269
+ hotmail
270
+ 0123456789
271
+ school
272
+ barcelona
273
+ august
274
+ orlando
275
+ samuel
276
+ cameron
277
+ slipknot
278
+ cutiepie
279
+ monkey1
280
+ 50cent
281
+ bonita
282
+ kevin
283
+ bitch
284
+ maganda
285
+ babyboy
286
+ casper
287
+ brenda
288
+ adidas
289
+ kitten
290
+ karen
291
+ mustang
292
+ isabel
293
+ natalie
294
+ cuteako
295
+ javier
296
+ 789456123
297
+ 123654
298
+ sarah
299
+ bowwow
300
+ portugal
301
+ laura
302
+ 777777
303
+ marvin
304
+ denise
305
+ tigers
306
+ volleyball
307
+ jasper
308
+ rockstar
309
+ january
310
+ fuckoff
311
+ alicia
312
+ nicholas
313
+ flowers
314
+ cristian
315
+ tintin
316
+ bianca
317
+ chrisbrown
318
+ chester
319
+ 101010
320
+ smokey
321
+ silver
322
+ internet
323
+ sweet
324
+ strawberry
325
+ garfield
326
+ dennis
327
+ panget
328
+ francis
329
+ cassie
330
+ benfica
331
+ love123
332
+ 696969
333
+ asdfgh
334
+ lollipop
335
+ olivia
336
+ cancer
337
+ camila
338
+ qwertyuiop
339
+ superstar
340
+ harrypotter
341
+ ihateyou
342
+ charles
343
+ monique
344
+ midnight
345
+ vincent
346
+ christine
347
+ apples
348
+ scorpio
349
+ jordan23
350
+ lorena
351
+ andreea
352
+ mercedes
353
+ katherine
354
+ charmed
355
+ abigail
356
+ rafael
357
+ icecream
358
+ mexico
359
+ brianna
360
+ nirvana
361
+ aaliyah
362
+ pookie
363
+ johncena
364
+ lovelove
365
+ fucker
366
+ abcdef
367
+ benjamin
368
+ 131313
369
+ gangsta
370
+ brooke
371
+ 333333
372
+ hiphop
373
+ aaaaaa
374
+ mybaby
375
+ sergio
376
+ welcome
377
+ metallica
378
+ julian
379
+ travis
380
+ myspace1
381
+ babyblue
382
+ sabrina
383
+ michael1
384
+ jeffrey
385
+ stephen
386
+ love
387
+ dakota
388
+ catherine
389
+ badboy
390
+ fernanda
391
+ westlife
392
+ blondie
393
+ sasuke
394
+ smiley
395
+ jackson
396
+ simple
397
+ melanie
398
+ steaua
399
+ dolphins
400
+ roberto
401
+ fluffy
402
+ teresa
403
+ piglet
404
+ ronald
405
+ slideshow
406
+ asdfghjkl
407
+ minnie
408
+ newyork
409
+ jason
410
+ raymond
411
+ santiago
412
+ jayson
413
+ 88888888
414
+ 5201314
415
+ jerome
416
+ gandako
417
+ muffin
418
+ gatita
419
+ babyko
420
+ 246810
421
+ sweetheart
422
+ chivas
423
+ ladybug
424
+ kitty
425
+ popcorn
426
+ alberto
427
+ valeria
428
+ cookies
429
+ leslie
430
+ jenny
431
+ nicole1
432
+ 12345678910
433
+ leonardo
434
+ jayjay
435
+ liliana
436
+ dexter
437
+ sexygirl
438
+ 232323
439
+ amores
440
+ rockon
441
+ christ
442
+ babydoll
443
+ anthony1
444
+ marcus
445
+ bitch1
446
+ fatima
447
+ miamor
448
+ lover
449
+ chris1
450
+ single
451
+ eeyore
452
+ lalala
453
+ 252525
454
+ scooter
455
+ natasha
456
+ skittles
457
+ brooklyn
458
+ colombia
459
+ 159357
460
+ teddybear
461
+ winnie
462
+ happy
463
+ manutd
464
+ 123456a
465
+ britney
466
+ katrina
467
+ christina
468
+ pasaway
469
+ cocacola
470
+ mahal
471
+ grace
472
+ linda
473
+ albert
474
+ tatiana
475
+ london
476
+ cantik
477
+ 0123456
478
+ lakers
479
+ marie
480
+ teiubesc
481
+ 147258369
482
+ charlotte
483
+ natalia
484
+ francisco
485
+ amorcito
486
+ smile
487
+ paola
488
+ angelito
489
+ manchester
490
+ hahaha
491
+ elephant
492
+ mommy1
493
+ shelby
494
+ 147258
495
+ kelsey
496
+ genesis
497
+ amigos
498
+ snickers
499
+ xavier
500
+ turtle
501
+ marlon
502
+ linkinpark
503
+ claire
504
+ stupid
505
+ 147852
506
+ marina
507
+ garcia
508
+ fuckyou1
509
+ diego
510
+ brandy
511
+ letmein
512
+ hockey
instance/users.db ADDED
Binary file (12.3 kB). View file
 
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ flask==3.0.2
2
+ Flask-SQLAlchemy==3.1.1
3
+ sqlalchemy==2.0.29
4
+ argon2-cffi==23.1.0
5
+ python-dotenv==1.0.1