Reference no: EM133083210
Question: Introduction to Web Development and Database Systems
Creating a Web Application
Learning Outcome 1: Describe how core principles of user and session management work in systems accessed remotely
Learning Outcome 2: Be able to specify the system components required for building simple web applications
Learning Outcome 3: Be able to build basic web applications using common languages and platforms
Task:
Create a working web application, of your choice, which implements user and session management, uses HTML, JavaScript and CSS for the front-end; with PHP and MySQL for the back-end
Requirements and Clarifications:
• Your application should have more than one page.
• Using PHP for the back-end development is preferred. However, you are allowed to use
another language (such as Python/Flask or another) instead
• The application should have a log in with a username and password authentication. The
password should be stored (ideally in a hashed form) in a file or database.
• You are allowed and encouraged to add other features, in any of the above technologies, which
we did not cover in the lectures and lab sessions.
• You are allowed to use another database management system (DBMS) other than MySQL.
• You are allowed to use the development tools/editors that you prefer.
• The use of templates is allowed but not recommended. If you use them however, you have to mention this explicitly in the written submission, indicating clearly what you used and what modifications you made.
• You can host the application on your local VM or use one from a previous module Delivery:
. In addition to the live demo, you will have to submit a brief WORD report containing screenshots of your website and minimal text, and documented code snippets, using WORD code syntax highlighter, as a walkthrough of the development of your application. The code should be included in the WORD file itself.
Programming and Algorithms - Brute-Forcing a Password
Learning Outcome 1: Understand basic theoretical aspects that apply to programming
Learning Outcome 2: Design simple software to meet given specifications
Task: Tasks are to be undertaken in the Python programming language. You will be expected to include comments in your code to explain the behaviour of your code and provide a justification of your algorithm selection. You are also strongly advised to test your code for compilation on a system other than your own, prior to submission. Non-compiling code will not pass, see the marking rubric for further information.
You will create GitHub private repository to store your source-code and manage version control of your work. Evidence of version control must be included in your regular commits to the repository over the period between the hand out date and due date. Your eventual submission via TurnItIn will link to that repository which must include all of your source-code.
The purpose of this assignment is to create an application whereby a user can insert a MD5 hash via the command-line or a file and brute-force it to decrypt the password. The assignment has been split into a collection of mini-tasks to help you build up the overall application. A CSV file will be provided for this task with a MD5 hash to brute-force, along with the password in plain-text for debugging.
The password hash used to check your code will consist of numbers, letters and special characters that are typically found on a UK-layout keyboard. The password will also be no more than five characters long. You do not need to use a salt when encrypting the guessed password.
Assignment Tasks
To successfully complete this assignment you are required to complete the following tasks. Each task has a weight that is attributed towards a portion of the overall grade.
Task 1: User Input
For this task you are required to accept a user input and store it appropriately to be used in the decryption function. It will be expected that the user can insert either a single hash, or multiple hashes via the command line.
Task 2: File Input
For this task you will be asked to read a supplied CSV file that will consist of MD5 hashes. The file may consist of a single hash, or multiple hashes, and it will be expected that these are stored appropriately.
Task 3: Brute Forcing the Hash
For this task, you are expected to take the collection of hashes (either user-inserted, or from a file) and decrypt them.
Each step in the decryption method should be shown in the command line, with the final output of the proposed password and the total amount of time taken for the decryption process.
It will be expected to see that students' have used multiple commits with descriptive messages for each commit. It will also be expected to see that you have made comments in your code to explain the methodology of the function.
Attachment:- Web application.rar