繁体   English   中英

pbkdf2_hmac 在 Django 中需要很长时间

[英]pbkdf2_hmac takes a long time in django

我正在对 django rest 框架 API 进行一些分析,并使用基于 cProfile 的分析中间件,我得到以下输出:

Sat Mar  2 23:55:13 2019    /var/folders/jr/something
41224 function calls (40529 primitive calls) in 0.182 seconds

Ordered by: internal time

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    1    0.124    0.124    0.124    0.124 {built-in method _hashlib.pbkdf2_hmac}
   11    0.006    0.001    0.007    0.001 {method 'execute' of 'psycopg2.extensions.cursor' objects}
  252    0.003    0.000    0.003    0.000 {built-in method posix.stat}
   11    0.002    0.000    0.009    0.001 /Users/my-local-user/.pyenv/versions/3.7.0/lib/python3.7/traceback.py:312(extract)

基于此,对于单个请求,调用_hashlib.pbkdf2_hmac一次几乎占用了我总执行时间的 70%!

我没有找到大量关于此的信息,除了它在 openSSL 中使用 - 但我在没有 ssl 的情况下在本地运行。

为什么我要花这么多时间在一个简单的 API 请求的加密函数上?

pbkdf2旨在运行缓慢。 它故意难以计算,因此强制执行需要大量时间。

如果您想拥有没有这种缓慢的分析数据,您可以调低此计算所采用的迭代次数。 有关更多详细信息,请参阅Django 中的密码管理 请记住仅针对测试和分析将其调低,因为在生产环境中以低迭代次数运行它是一种安全风险!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM