Imagine your password is like a special key that unlocks your personal lockbox, and you want to keep that key safe. Your password (the key) is turned into a unique pattern with a secret ingredient and kept safe inside a strong lockbox. Only the computer knows how to recreate this pattern with the secret ingredient to see if it matches.
A widely used cryptographic hashing function that is specifically designed for securely hashing passwords. Bcrypt is a preferred choice for securely hashing passwords in web applications and other systems where password security is crucial.
Using Bcrypt or similar password hashing algorithms is a fundamental practice in cybersecurity for protecting sensitive user credentials and maintaining the security and trustworthiness of your application or system. You might use it for several important reasons, such as password security, salted hashes, standardization, ect.
Basic Authentication is a simple and straightforward method for authenticating users in web applications and APIs. It’s based on the HTTP protocol and involves the transmission of a username and password, typically in an encoded form, to access protected resources. It is considered relatively insecure when used on its own
A request contains a header field in the form of
Authorization: Basic <credentials>
, where credentials is the Base64 encoding of ID and password joined by a single colon:
username:password
in Basic Auth encoded?The username and password are joined with a ‘:’ then “base64 encoded” and placed after the string ‘Basic.
Authentication is like proving who you are when you want to access something, just like showing your ID card to get into a secure building. It uses a combination of something you know (a password) and sometimes something you have (a card or phone) or something unique to you (biometrics).
Effective error messaging involves providing appropriate HTTP status codes, clear HTML error messages, and a user-friendly experience. The goal is to guide users in understanding and resolving issues while also providing enough information for developers to diagnose and fix problems on the server side.
I look forward to learning about role based access control, as it seems like it’d be very important for future jobs.
Getting faster at backend developement and learning all about password encryption