菜鸟-创作你的创作

sha1加密

明白了,你是想了解 SHA-1 加密(严格来说是哈希,不是加密)。我给你做一个 全面讲解,包括原理、特点、使用方法和 Python 示例。


1️⃣ SHA-1 是什么

注意:SHA-1 不是可逆的加密,不能解密回原文,只能比对哈希值。


2️⃣ SHA-1 特点

特性说明
输出长度160 位(20 字节),一般用 40 位十六进制表示
单向性给定摘要无法推算原始数据
敏感性原文哪怕改动一个字节,摘要完全不同
安全性已被破解(可产生碰撞),不推荐用于密码存储

✅ 可以用作文件校验、数字签名等
❌ 不推荐用于密码加密或安全认证(改用 SHA-256 或 SHA-3)


3️⃣ SHA-1 Python 示例

import hashlib

# 原始字符串
text = "Hello, world!"

# 创建 SHA-1 对象
sha1 = hashlib.sha1()

# 更新数据(必须是 bytes 类型)
sha1.update(text.encode('utf-8'))

# 获取十六进制摘要
hash_result = sha1.hexdigest()

print("原文:", text)
print("SHA-1 哈希:", hash_result)

输出示例:

原文: Hello, world!
SHA-1 哈希: 943a702d06f34599aee1f8da8ef9f7296031d699


🔹 一行生成

hashlib.sha1("Hello, world!".encode('utf-8')).hexdigest()


4️⃣ 文件 SHA-1 校验示例

import hashlib

def file_sha1(filename):
    sha1 = hashlib.sha1()
    with open(filename, 'rb') as f:
        while True:
            data = f.read(65536)  # 分块读取
            if not data:
                break
            sha1.update(data)
    return sha1.hexdigest()

print(file_sha1("example.zip"))

分块读取大文件,避免一次性读入内存。


5️⃣ 安全性注意事项


退出移动版