Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js bcrypt密码拥有建议的回合数是多少?_Node.js_Bcrypt - Fatal编程技术网

Node.js bcrypt密码拥有建议的回合数是多少?

Node.js bcrypt密码拥有建议的回合数是多少?,node.js,bcrypt,Node.js,Bcrypt,我现在正在学习nodejs上下文中的passhashing,我想知道您会推荐什么作为salt级别。默认级别是10,我想知道这对于用户少于10个的基本应用程序是否足够好。不管您有多少用户。有人可能会说,如果你只有10个用户,那么每个用户就有更多的资源来保证他们的安全 对于“多少轮还行”这个问题的一个好答案是回答一个问题——在不降低性能的情况下,您能承受多少轮 有时默认设置是可以的,但有时您可以做得更好。你真的必须自己测试它,并衡量其影响。不管你有多少用户。有人可能会说,如果你只有10个用户,那么每

我现在正在学习nodejs上下文中的passhashing,我想知道您会推荐什么作为salt级别。默认级别是10,我想知道这对于用户少于10个的基本应用程序是否足够好。

不管您有多少用户。有人可能会说,如果你只有10个用户,那么每个用户就有更多的资源来保证他们的安全

对于“多少轮还行”这个问题的一个好答案是回答一个问题——在不降低性能的情况下,您能承受多少轮


有时默认设置是可以的,但有时您可以做得更好。你真的必须自己测试它,并衡量其影响。

不管你有多少用户。有人可能会说,如果你只有10个用户,那么每个用户就有更多的资源来保证他们的安全

对于“多少轮还行”这个问题的一个好答案是回答一个问题——在不降低性能的情况下,您能承受多少轮


有时默认设置是可以的,但有时您可以做得更好。你真的必须自己测试它,并测量其影响。

为了回答你的问题,我做了一个简单的测试Pyhton脚本:

#!/usr/bin/env python3

import bcrypt
import time

passwd = b's$cret12'
for i in range(4,17):
    print(f'Rounds:{i}')
    start = time.time()
    salt = bcrypt.gensalt(rounds=i)
    hashed = bcrypt.hashpw(passwd, salt)
    end = time.time()
    print(f'Rounds:{i} | Time: {end - start:.4f} s')
并在Intel(R)Xeon(R)CPU E5-2620 v4@2.10GHz上获得以下结果:

Rounds:4 | Time: 0.0016 s
Rounds:5 | Time: 0.0029 s
Rounds:6 | Time: 0.0060 s
Rounds:7 | Time: 0.0115 s
Rounds:8 | Time: 0.0232 s
Rounds:9 | Time: 0.0459 s
Rounds:10 | Time: 0.0907 s /* Good enough */
Rounds:11 | Time: 0.1834 s /* Worth to consider */
Rounds:12 | Time: 0.3563 s
Rounds:13 | Time: 0.7215 s
Rounds:14 | Time: 1.4437 s
Rounds:15 | Time: 2.9140 s
Rounds:16 | Time: 5.8405 s

因此,您可以考虑这些数字来了解1个密码对常用词的哈希表的检查时间。

今天,我会考虑一些“强”>0.1秒密码(如果你不允许用户使用简单密码,比如“123456”)。因此,考虑10或11轮。

  • 请记住,它并不能保护您的用户,只是为他们争取时间 一旦您的密码数据库关闭,请安全地更改其密码 妥协

为了回答你的问题,我做了一个简单的测试Pyhton脚本:

#!/usr/bin/env python3

import bcrypt
import time

passwd = b's$cret12'
for i in range(4,17):
    print(f'Rounds:{i}')
    start = time.time()
    salt = bcrypt.gensalt(rounds=i)
    hashed = bcrypt.hashpw(passwd, salt)
    end = time.time()
    print(f'Rounds:{i} | Time: {end - start:.4f} s')
并在Intel(R)Xeon(R)CPU E5-2620 v4@2.10GHz上获得以下结果:

Rounds:4 | Time: 0.0016 s
Rounds:5 | Time: 0.0029 s
Rounds:6 | Time: 0.0060 s
Rounds:7 | Time: 0.0115 s
Rounds:8 | Time: 0.0232 s
Rounds:9 | Time: 0.0459 s
Rounds:10 | Time: 0.0907 s /* Good enough */
Rounds:11 | Time: 0.1834 s /* Worth to consider */
Rounds:12 | Time: 0.3563 s
Rounds:13 | Time: 0.7215 s
Rounds:14 | Time: 1.4437 s
Rounds:15 | Time: 2.9140 s
Rounds:16 | Time: 5.8405 s

因此,您可以考虑这些数字来了解1个密码对常用词的哈希表的检查时间。

今天,我会考虑一些“强”>0.1秒密码(如果你不允许用户使用简单密码,比如“123456”)。因此,考虑10或11轮。

  • 请记住,它并不能保护您的用户,只是为他们争取时间 一旦您的密码数据库关闭,请安全地更改其密码 妥协