This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to third parties or posted on any website. Any infringements of this rule should be reported to facultyregistry.eec@coventry.ac.uk. | |||||||||||||||||||||||||||||||||||||||||||||
Faculty of Engineering, Environment and Computing4061CEM Programming and Algorithms 1 |
|
||||||||||||||||||||||||||||||||||||||||||||
Assignment Brief |
|||||||||||||||||||||||||||||||||||||||||||||
Module TitleProgramming and Algorithms 1 |
Assignment TypeIndividual |
CohortSeptember |
Module Code4061CEM |
||||||||||||||||||||||||||||||||||||||||||
Coursework TitleBrute-Forcing a Password (Attempt 3) |
Hand Out Date24/05/2023 |
||||||||||||||||||||||||||||||||||||||||||||
LecturerDr Ian Cornelius |
Due Date and Time03/07/2023 |
||||||||||||||||||||||||||||||||||||||||||||
Estimated Time20 HoursWord LimitNot Applicable |
Coursework TypeIndividual Programming Assignment |
Credit Value Assessed10 |
|||||||||||||||||||||||||||||||||||||||||||
Submission Arrangement:AulaFile Types Accepted:
|
|||||||||||||||||||||||||||||||||||||||||||||
Module Learning Outcomes Assessed:
|
|||||||||||||||||||||||||||||||||||||||||||||
Important NoticeIf this is your third (and final) attempt at this piece of coursework, you are taking the feedback from your previous submission and improving upon it for this submission. Preliminary InstructionsTasks 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 a Coventry University 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. Task and Mark DistributionThe purpose of this assignment is to create an application whereby a user can insert a SHA256 hash via the command-line or from a file and then 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 selection of SHA256 hashes to test your brute-forcing algorithm. The plain-text password will be provided alongside the hash to assist you in the debugging and creation of your application. The password that will be 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 TasksTo 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. Remember, that each of these tasks will feed into a project (or piece of code) that will run cohesively. Task 1: User Input (10%)For this task you are required to accept a user input and store it in an appropriate data type. The hash(es) you accept will 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 (20%)For this task you will be asked to read a supplied CSV file that will consist of SHA256 hashes. The file may consist of a single hash, or multiple hashes, and it will be expected that these are stored in an appropriate data type. Task 3: Brute-Forcing the Hash(es) (60%)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 cracked 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. Task 4: Submission Guidelines (10%)You will be expected to follow the submission guidelines, as outlined in the document below. Essentially, you are required to follow these rules:
It is easier to visualise what is meant by these rules by looking at the example document provided below. You will either be awarded zero marks, or full marks, depending on how you follow the guidelines. Your source-code will be submitted to a plagiarism checker - so please ensure that any source-code acquired online is appropriately referenced. You are not to push or commit code to the GitHub repository after you have submitted your coursework. Timestamps will be checked, and if any changes made after the submission timestamp will not be marked. Extensions and DeferralsIf you require an extension or deferral, you can find out more information at the following link: Information on Extensions/Deferral Remember: You must supply evidence with your application. Failure to do so may result in the extension/deferral not being approved. Plagiarism and Academic Misconduct PolicyEnsure that you are familiar with the university guidance on Plagiarism and Academic Misconduct. Any work found to be in violation of the rules will be submitted for an academic misconduct case. Marking Allocation
Marking Rubric
|
|||||||||||||||||||||||||||||||||||||||||||||
Notes
|