跳到内容

suspicious-insecure-hash-usage (S303)

源自 flake8-bandit linter。

作用

检查对弱或已损坏的密码散列函数的使用情况。

为什么这不好?

弱或已损坏的密码散列函数可能容易受到碰撞攻击(其中两个不同的输入产生相同的哈希)或原像攻击(其中攻击者可以找到产生给定哈希的输入)。这可能会导致依赖这些哈希函数的应用程序中出现安全漏洞。

避免在安全环境中使用弱或已损坏的密码散列函数。相反,请使用已知的安全哈希函数,例如 SHA-256。

预览中,此规则还将标记对不安全哈希函数的引用。

示例

from cryptography.hazmat.primitives import hashes

digest = hashes.Hash(hashes.MD5())
digest.update(b"Hello, world!")
digest.finalize()

建议改为

from cryptography.hazmat.primitives import hashes

digest = hashes.Hash(hashes.SHA256())
digest.update(b"Hello, world!")
digest.finalize()

参考