Ric*_*ann 2 python random python-3.x python-internals
我想调查研究python 3.7的os.urandom()函数代码。我查看了各自的标准库的os.py,但它既没有在那里定义,也没有在那里导入。我也尝试 grep 定义:
/usr/lib/python3.7 $ grep -rFl "def urandom" 2> /dev/null
但没什么。我怀疑 os.urandom() 发生了一些神奇的事情。在哪里可以找到用于学习和密码分析的函数定义?
在 POSIX 系统和 Windows 上,为os模块定义的许多名称都由 处理Modules/posixmodule.c。请注意,源代码是C 语言,而不是 Python,因为访问系统函数需要本机代码。
您可以看到这是os.py源代码,它要么导入posix要么nt基于当前操作系统,其中这两个名称都是从上述posixmodule.c文件编译的,但重命名以更好地反映平台并表明两个变体之间的功能不同(nt变体提供的功能较少)。
的实现细节见os_urandom_impl()函数os.urandom()。这委托给一个内部函数 ,_PyOS_URandom()它与 Python 启动过程早期需要的其他辅助函数一起在Python/bootstrap_hash.c.
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |