From 7afd8322dbb60430469331cf696fe3bc437c6a16 Mon Sep 17 00:00:00 2001 From: subhayuroy Date: Wed, 16 Sep 2020 21:43:57 +0530 Subject: [PATCH] Hashing Function completed --- .idea/.gitignore | 8 ++++ .idea/Computational Forensics.iml | 8 ++++ .idea/inspectionProfiles/Project_Default.xml | 38 ++++++++++++++++++ .../inspectionProfiles/profiles_settings.xml | 6 +++ .idea/misc.xml | 4 ++ .idea/modules.xml | 8 ++++ Hashing Function/advance.py | 22 ++++++++++ Hashing Function/basic.py | 10 +++++ Hashing Function/hash_function_flowchart.jpg | Bin 0 -> 35858 bytes 9 files changed, 104 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/Computational Forensics.iml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 Hashing Function/advance.py create mode 100644 Hashing Function/basic.py create mode 100644 Hashing Function/hash_function_flowchart.jpg diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..1d4e799 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../../:\Pycharm\PycharmProjects\Computational Forensics\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Computational Forensics.iml b/.idea/Computational Forensics.iml new file mode 100644 index 0000000..75dadff --- /dev/null +++ b/.idea/Computational Forensics.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..f3a2286 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,38 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a2207eb --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..710c3b8 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Hashing Function/advance.py b/Hashing Function/advance.py new file mode 100644 index 0000000..8690369 --- /dev/null +++ b/Hashing Function/advance.py @@ -0,0 +1,22 @@ +import uuid, hashlib + + +def hash_password(password): + salt = uuid.uuid4().hex + return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt + + +def check_password(hashed_psswd, user_psswd): + password, salt = hashed_psswd.split(':') + return password == hashlib.sha256(salt.encode() + user_psswd.encode()).hexdigest() + + +new_pass = input("Enter required password= ") +hashed_psswd = hash_password(new_pass) +print('The string to store in the db is: ' + hashed_psswd) +old_pass = input("Re-enter new password= ") + +if check_password(hashed_psswd, old_pass): + print("You entered the correct password") +else: + print("The passwords don't match") \ No newline at end of file diff --git a/Hashing Function/basic.py b/Hashing Function/basic.py new file mode 100644 index 0000000..4c79cb0 --- /dev/null +++ b/Hashing Function/basic.py @@ -0,0 +1,10 @@ +import sys, string, md5hash + +print("Enter your full name: ") +line = sys.stdin.readline() +line = line.rstrip() + +md5_obj = md5hash.new() +md5_obj.update(line) + +print(md5_obj.hexidigest()) \ No newline at end of file diff --git a/Hashing Function/hash_function_flowchart.jpg b/Hashing Function/hash_function_flowchart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..222d79a7fd8cbbf3e4d3aa17e04e8635d439ccd4 GIT binary patch literal 35858 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 literal 0 HcmV?d00001