- Python 取证教程
- 家
- 介绍
- Python的安装
- Python概述
- 基本法医应用
- 哈希函数
- 破解加密
- 虚拟化
- 网络取证
- Python 模块
- Dshell 和 Scapy
- 搜寻中
- 索引
- Python 图像库
- 移动取证
- 网络时间协议
- 多处理支持
- 记忆与取证
- Linux 中的取证
- 妥协指标
- 云实施
- Python 取证有用资源
- Python 取证 - 快速指南
- Python 取证 - 有用的资源
- Python 取证 - 讨论
Python 取证 - 哈希函数
哈希函数被定义为将大量数据映射到具有指定长度的固定值的函数。该函数确保相同的输入产生相同的输出,这实际上被定义为哈希和。哈希和包括具有特定信息的特征。
该功能实际上不可能恢复。因此,任何第三方攻击(例如暴力攻击)实际上是不可能的。另外,这种算法称为单向密码算法。
理想的加密哈希函数有四个主要属性 -
- 计算任何给定输入的哈希值必须很容易。
- 从其哈希生成原始输入肯定是不可行的。
- 在不改变哈希值的情况下修改输入肯定是不可行的。
- 找到具有相同哈希值的两个不同输入肯定是不可行的。
例子
请考虑以下示例,该示例有助于使用十六进制格式的字符来匹配密码。
import uuid import hashlib def hash_password(password): # userid is used to generate a random number salt = uuid.uuid4().hex #salt is stored in hexadecimal value return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt def check_password(hashed_password, user_password): # hexdigest is used as an algorithm for storing passwords password, salt = hashed_password.split(':') return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest() new_pass = raw_input('Please enter required password ') hashed_password = hash_password(new_pass) print('The string to store in the db is: ' + hashed_password) old_pass = raw_input('Re-enter new password ') if check_password(hashed_password, old_pass): print('Yuppie!! You entered the right password') else: print('Oops! I am sorry but the password does not match')
流程图
我们借助以下流程图解释了该程序的逻辑 -
输出
我们的代码将产生以下输出 -
输入两次的密码与哈希函数匹配。这可以确保输入两次的密码是准确的,这有助于收集有用的数据并以加密格式保存它们。