- 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')
流程图
我们借助以下流程图解释了此程序的逻辑 -
输出
我们的代码将产生以下输出 -
两次输入的密码与哈希函数匹配。这可确保两次输入的密码准确无误,这有助于收集有用的数据并以加密格式保存它们。
广告