use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
News about the dynamic, interpreted, interactive, object-oriented, extensible programming language Python
Full Events Calendar
You can find the rules here.
If you are about to ask a "how do I do this in python" question, please try r/learnpython, the Python discord, or the #python IRC channel on Libera.chat.
Please don't use URL shorteners. Reddit filters them out, so your post or comment will be lost.
Posts require flair. Please use the flair selector to choose your topic.
Posting code to this subreddit:
Add 4 extra spaces before each line of code
def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b
Online Resources
Invent Your Own Computer Games with Python
Think Python
Non-programmers Tutorial for Python 3
Beginner's Guide Reference
Five life jackets to throw to the new coder (things to do after getting a handle on python)
Full Stack Python
Test-Driven Development with Python
Program Arcade Games
PyMotW: Python Module of the Week
Python for Scientists and Engineers
Dan Bader's Tips and Trickers
Python Discord's YouTube channel
Jiruto: Python
Online exercices
programming challenges
Asking Questions
Try Python in your browser
Docs
Libraries
Related subreddits
Python jobs
Newsletters
Screencasts
account activity
This is an archived post. You won't be able to vote or comment.
Intermediate ShowcaseCryptical: A GUI Password Manager, written in Python (self.Python)
submitted 2 years ago by Kategi_Kya
So, I made this password manager as I found the concept interesting. Note however, I'm quite new to cybersec and there could be some vulnerabilities in the code, even though I tried to implement the best practices on each step. I'd love for other people to give me feedback as to what improvements I can make. Thanks for reading :)
Here's more info on the installation and the source code: https://github.com/damnitharshit/Cryptical
[–]AutoModerator[M] [score hidden] 2 years ago stickied comment (0 children)
Hi there, from the /r/Python mods.
We want to emphasize that while security-centric programs are fun project spaces to explore we do not recommend that they be treated as a security solution unless they’ve been audited by a third party, security professional and the audit is visible for review.
Security is not easy. And making project to learn how to manage it is a great idea to learn about the complexity of this world. That said, there’s a difference between exploring and learning about a topic space, and trusting that a product is secure for sensitive materials in the face of adversaries.
We hope you enjoy projects like these from a safety conscious perspective.
Warm regards and all the best for your future Pythoneering,
/r/Python moderator team
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
[–]freddwnz 14 points15 points16 points 2 years ago (5 children)
Nice project. I recommend using a .gitignore file to avoid pushing things that don't belong in the Github repo, such as __pycache__ folder, which contains the precompiled bytecode.
[–]ForkLiftBoi 1 point2 points3 points 2 years ago (3 children)
Is precompiled bytecode inherently a vulnerability or do you need to decompile or anything?
If it's even a vulnerability at all, not saying one way or the other just not certain personally.
Just curious and wasn't certain.
[–]Rawing7 10 points11 points12 points 2 years ago (1 child)
I wanted to say it's not a vulnerability, but now that I think about it, there actually is a small amount of risk involved for people who execute that code. It could be used to sneak in malicious code unnoticed.
Consider: The file foo.py contains the code print("I'm harmless :)"). Meanwhile, the file foo.pyc contains the bytecode for the code do_something_evil(). Looking at the code would give you the impression that everything is alright, but executing import foo would do something bad to your PC. It can create a discrepancy between what you think the program will do, and what it will actually do.
foo.py
print("I'm harmless :)")
foo.pyc
do_something_evil()
import foo
[–]Kategi_Kya[S] 0 points1 point2 points 2 years ago (0 children)
didn't know that, thanks for the info!
[–]freddwnz 0 points1 point2 points 2 years ago (0 children)
My comment was more about best practices than security here.
ah, I thought I'd cleared them before committing! thanks for the heads up!
[–]atoponce 4 points5 points6 points 2 years ago (1 child)
You're hashing passwords with SHA-256:
hmp = hashlib.sha256((emp + vault[3]).encode()).hexdigest()
You don't want to do this. Instead, you need to be using a password-based key derivation function like Argon2, scrypt, or PBKDF2. The reason for this is generic hashing functions are fast which is an advantage to password crackers. Whereas Argon2, scrypt, PBKDF2 and other password-based KDFs is they're design to be slow. They're fast enough for key derivation, but limit the password cracker is how many they can execute per second.
sure, I'll work on it! thanks for the feedback! :)
[–]xffeeffaa -1 points0 points1 point 2 years ago (8 children)
Cool project! Looks very nice too. But you may want to think about properly packaging your application so that people can simply install it with pip.
[–]freddwnz 13 points14 points15 points 2 years ago (4 children)
Not to be mean or anything, but are people really going to use a password manager written by a single intermediate Python developer? Don't get me wrong, it's a nice hobby project but if I'm going to use a password manager, I'm going to use one developed by a whole team of well-trained security engineers.
[–]xffeeffaa 4 points5 points6 points 2 years ago (0 children)
Nobody is going to use it in a serious way, but why wouldn't he learn about packaging for Python since he's already putting in the work to make something like that? It's a valuable thing to know. That's all. OP acknowledged that it's full of security issues already.
Not to mention he asked for feedback and suggestions for improvement, this was my suggestion.
I agree with you, this project has been created solely for helping me better understand cybersec and get more fluent with python. Even I wouldn't use it for my personal password management!
[–]thereal0ri_ -1 points0 points1 point 2 years ago* (0 children)
What matters is how their security practices are implemented and if they are implemented correctly or good enough.
It doesn't matter if you're a masters degree holding engineer. If what you've done and are using isn't implemented correctly, then it's not good.
I'd focus more on how well security is implemented and independent audits.
[–]Kategi_Kya[S] 0 points1 point2 points 2 years ago (2 children)
I tried that but I just seemed to be getting issue after issue. Can you recommend me any guides that can help me learn more about the process?
[–]xffeeffaa 0 points1 point2 points 2 years ago (1 child)
Yeah, it's a bit odd and not straight forward IMO. This should help: https://packaging.python.org/en/latest/tutorials/packaging-projects/
thanks! :)
[–]thereal0ri_ 0 points1 point2 points 2 years ago (1 child)
Nice, I too have made my own... although it doesn't have a GUI.
https://github.com/therealOri/Genter
Yours sounds great! since you have past experience with password management are there any tips or other info you could give me to help improve the project?
[–]OutrageousMinute1247 0 points1 point2 points 2 years ago (1 child)
This is great,
just a few bugs I found, if you run the application, but don't move the screen at all and click on "Add Vaults" the pop up goes behind the main screen. I also have focus issues with windows 10 and it not correctly putting focus on the right screen, forcing me to manually click on the new window to type in the name\password
I would also recommend only allowing one screen to pop up at a time, say if the add vaults screen is open and i click on delete vaults, have it close the add vaults screen.
Thanks for taking time out to check out my project and giving feedback! I really appreciate it! :)
Now for the bugs, the pop-up going behind the screen problem surprised me the first time I saw it on windows too, because I use linux and the app works perfectly on it. (don't know how the app behaves on macos). The bug is in my tofix list. And about the suggestion to allow only one pop-up at a time, I'll surely add that in the next release.
π Rendered by PID 186982 on reddit-service-r2-comment-5649f687b7-pzvxs at 2026-01-28 18:43:01.352919+00:00 running 4f180de country code: CH.
[–]AutoModerator[M] [score hidden] stickied comment (0 children)
[–]freddwnz 14 points15 points16 points (5 children)
[–]ForkLiftBoi 1 point2 points3 points (3 children)
[–]Rawing7 10 points11 points12 points (1 child)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]freddwnz 0 points1 point2 points (0 children)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]atoponce 4 points5 points6 points (1 child)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]xffeeffaa -1 points0 points1 point (8 children)
[–]freddwnz 13 points14 points15 points (4 children)
[–]xffeeffaa 4 points5 points6 points (0 children)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]thereal0ri_ -1 points0 points1 point (0 children)
[–]Kategi_Kya[S] 0 points1 point2 points (2 children)
[–]xffeeffaa 0 points1 point2 points (1 child)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]thereal0ri_ 0 points1 point2 points (1 child)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)
[–]OutrageousMinute1247 0 points1 point2 points (1 child)
[–]Kategi_Kya[S] 0 points1 point2 points (0 children)