跳到内容

可疑的非加密随机数使用 (S311)

源自 flake8-bandit linter。

作用

检查对密码学上较弱的伪随机数生成器的使用。

为什么这不好?

密码学上较弱的伪随机数生成器是不安全的,因为它们很容易被预测。这可能允许攻击者猜测生成的数字并损害系统的安全性。

相反,当出于安全目的生成随机数时,请使用密码学上安全的伪随机数生成器(例如使用 secrets 模块)。

预览 中,此规则还会标记对这些生成器的引用。

示例

import random

random.randrange(10)

建议改为

import secrets

secrets.randbelow(10)

参考