首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该如何设置Scrypt散列函数的参数,才能获得大约250毫秒的散列处理持续时间?

Scrypt是一种密码学哈希函数,用于密码存储和验证。它的设计目标是抵抗硬件攻击和大规模定制硬件攻击,因此在设置参数时需要考虑安全性和性能之间的平衡。

要获得大约250毫秒的散列处理持续时间,可以通过调整以下参数来实现:

  1. N参数(CPU/memory cost):N参数控制内存消耗量,较大的N值可以增加攻击者破解密码所需的时间和资源。然而,较大的N值也会增加散列处理的时间。为了达到250毫秒的持续时间,可以逐渐增加N值,直到满足要求。
  2. r参数(block size):r参数控制内部循环的迭代次数,较大的r值可以增加攻击者破解密码所需的时间和资源。然而,较大的r值也会增加散列处理的时间。根据实际情况,可以逐渐增加r值,直到满足要求。
  3. p参数(parallelization):p参数控制并行化的程度,较大的p值可以增加攻击者破解密码所需的时间和资源。然而,较大的p值也会增加散列处理的时间。根据实际情况,可以逐渐增加p值,直到满足要求。

需要注意的是,参数的增加会增加散列处理的时间,因此需要在安全性和性能之间进行权衡。建议进行逐步增加参数值的尝试,并进行性能测试,以找到适合您需求的最佳参数组合。

腾讯云提供了云安全产品和服务,如云安全中心、DDoS防护、Web应用防火墙等,可以帮助保护您的云计算环境的安全。您可以访问腾讯云官方网站了解更多相关产品和服务的详细信息:腾讯云安全产品

请注意,本回答仅提供了关于Scrypt散列函数参数设置的一般性建议,具体的参数设置应根据您的具体需求和环境进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Security 入门(一)Spring Security中的认证与密码编码器

应该使用的自适应单向函数的例子包括bcrypt、PBKDF2、scrypt和argon2。 由于自适应单向函数有意地耗费资源,因此为每个请求验证用户名和密码将显著降低应用程序的性能。...与其他自适应单向函数一样,应该将其调优为大约1秒来验证系统上的密码。...建议你在自己的系统上调优和测试强度参数,以便验证密码大约需要1秒。...为了破解密码,PBKDF2是一个故意缓慢的算法。与其他自适应单向函数一样,应该将其调优为大约1秒来验证系统上的密码。当需要FIPS认证时,该算法是一个很好的选择。...为了破解自定义硬件上的密码,scrypt是一种故意缓慢的算法,它需要大量的内存。与其他自适应单向函数一样,应该将其调优为大约1秒来验证系统上的密码。

1.7K30

漫话:将密码明文保存在数据库是真的low!

单向Hash算法 单向散列算法,又称hash函数,就是把任意长的输入消息串变化成固定长的输出串的一种函数。一般用于产生消息摘要,密钥加密等。... 通常情况下,当字段经过散列处理(如MD5),会生成一段散列值,而散列后的值一般是无法通过特定算法得到原始字段的。...其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。...加盐后的散列值,可以极大的降低由于用户数据被盗而带来的密码泄漏风险,即使通过彩虹表寻找到了散列后的数值所对应的原始内容,但是由于经过了加盐,插入的字符串扰乱了真正的密码,使得获得真实密码的概率大大降低。...但是,scrypt在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。

1.6K40
  • 如何给女朋友解释为什么12306会用户信息泄露

    彩虹表 彩虹表(rainbow table)是一个用于加密散列函数逆运算的预先计算好的表,常用于破解加密过的密码散列。查找表常常用于包含有限字符固定长度纯文本密码的加密。... 通常情况下,当字段经过散列处理(如MD5),会生成一段散列值,而散列后的值一般是无法通过特定算法得到原始字段的。...其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。...加盐后的散列值,可以极大的降低由于用户数据被盗而带来的密码泄漏风险,即使通过彩虹表寻找到了散列后的数值所对应的原始内容,但是由于经过了加盐,插入的字符串扰乱了真正的密码,使得获得真实密码的概率大大降低。...但是,scrypt在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。

    1.6K10

    Spring Security 之密码存储

    当用户尝试进行身份验证时,哈希密码将与他们键入的密码的哈希值进行比较,因此,系统只需要存储密码的单向散列值,如果发生泄露,也只会暴露密码的单向散列值。...由于散列是一种单向形式,在给定散列的情况下很难猜测出密码,因此不值得费尽心思找出系统中的每个密码。...与其他自适应单向函数一样,应将其调整为大约1秒来验证系统上的密码。...我们鼓励您在自己的系统上调整和测试强度参数,以便验证密码大约需要1秒。 Example 9....为了克服现代硬件上的密码破解,scrypt是一种需要大量内存的刻意缓慢的算法。与其他自适应单向函数一样,应将其调整为大约1秒来验证系统上的密码。 Example 12.

    1K30

    如何安全存储秘密?

    PBKDF2加密算法就是牺牲了时间来换取安全,一个明文的密码+随机的盐,然后哈希散列加密后存储起来,这是我们前面说的(二、加盐salted)。把这个过程重复100次,得到的结果存储起来。...请注意,尽管我们说牺牲了时间,又说到了重复100次,那也是很快的,因为我们的普通服务器单次的运算都是在毫秒级。...scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利用彩虹表进行暴力攻击更加困难。scrypt没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。...但是,scrypt在算法层面只要没有破绽,它的安全性应该高于PBKDF2。 五、请使用bcrypt!请使用bcrypt!请使用bcrypt!...随着计算能力的提高,应该可以逐步增大这个参数,增大这个参数后并不会影响原来的用户。

    1.9K70

    准备好纸和笔,人肉计算比特币:每天0.67哈希值

    更多关于挖矿的内容,请参考这篇文章【阅读原文】。 一个加密散列函数可以接收大量输入数据,并输出一个不可预测的输出值。...对于比特币来说,它所使用的哈希散列函数名叫SHA-256,为了提供额外的安全保护功能,比特币使用了两次SHA-256函数,也就是所谓的双重SHA-256。...但是在比特币系统中,一切都是以指数倍形式增加的。目前,一次成功的哈希必须以大约17个0起始,所以哈希计算的成功率大约为1/1.4x1020。换句话说,寻找到一个正确的哈希值其难度比大海捞针还要难。...具体的计算过程请参考中本聪的比特币白皮书【阅读原文】。 人肉挖矿 我们在下面这个视频中给大家演示了如何使用纸和笔人肉计算刚才所描述的SHA-256哈希计算。...我自己实现了挖矿过程中的一轮哈希计算,整个过程大约花费了16分钟左右的时间。视频地址【阅读原文】 下图显示的是比特币区块的最后一轮哈希计算,计算出来的结果用黄色部分标注出来了。

    1.1K100

    【D3使用教程】(5) 动态更新与过渡动画

    数据总是在变化的,那么我们要如何将变化的数据反映到图表上呢? 在D3中,这些变化通过更新进行处理。而过渡通过使用动画用于处理视觉上的展示。...d3.select("p") .on("click",function() {//selection.on()方法是添加事件监听器的简便方法,接受两个参数:事件类型和监听器(匿名函数) //...p") .on("click",function() {//selection.on()方法是添加事件监听器的简便方法,接受两个参数:事件类型和监听器(匿名函数)...根据经验,细微的界面反馈(如鼠标悬停在元素上触发过渡),过渡时间大约150毫秒较合适,而更显著的视觉过渡(比如整个数据视图的变化)持续1000毫秒较合适。...对于ease()的使用,需要再transition()之后、attr()之前指定。当然,除了ease()还有circle()、elastic()、bounce()等函数用于处理过渡动画。

    43910

    密码加密我弃用了MD5加盐,选择Bcrypt加密

    可配置性:可以通过传递选项数组来配置哈希的生成,例如设置成本因子。 内置验证:password_verify 函数可以验证用户输入的密码与存储的哈希值是否匹配,提供了一种安全的方式来检查密码。...示例 1 password_hash() 示例 /** * 我们想要使用默认算法散列密码 * 当前是 BCRYPT,并会产生 60 个字符的结果。...* 以下代码目标为 ≤ 350 毫秒(milliseconds), * 对于处理交互式登录的系统来说,这是一个合适的延迟时间。...假设我们这里的密码是resty123456 // 默认算法散列密码 $password_hash = password_hash("resty123456", PASSWORD_DEFAULT); echo...password_verify 函数的第一个参数是用户输入的密码,第二个参数是数据库中存储的哈希密码。这个函数会自动比较输入的密码和哈希密码是否一致,并返回一个布尔值。

    33710

    PHP 密码散列算法函数password_hash详解

    只有在 PHP 编译时加入 Argon2 支持时才能使用该算法。 PASSWORD_ARGON2ID - 使用 Argon2id 散列算法创建散列。...参数说明: password: 一个由 password_hash() 创建的散列值。 algo: 一个用来在散列密码时指示算法的密码算法常量。 cost,用来指明算法递归的层数。...* 以下代码目标为 ≤ 50 毫秒(milliseconds), * 适合系统处理交互登录。...注意: 在交互的系统上,推荐在自己的服务器上测试此函数,调整 cost 参数直至函数时间开销小于 100 毫秒(milliseconds)。 上面脚本的例子会帮助选择合适硬件的最佳 cost。...注意: 这个函数更新支持的算法时(或修改默认算法),必定会遵守以下规则: 任何内核中的新算法必须在经历一次 PHP 完整发行才能成为默认算法。

    1.1K20

    【安全设计】10种保护Spring Boot应用程序的绝佳方法

    就像代码质量和测试一样,安全性已经成为开发人员关注的问题。如果您是一名开发人员,并且不关心安全性,那么您可能认为您应该关心安全性。本文的目的是向您介绍如何创建更安全的Spring引导应用程序。...幸运的是,Spring security默认不允许使用纯文本密码。它还附带一个加密模块,您可以使用该模块进行对称加密、密钥生成和密码散列(也称为密码散列)。、密码编码)。...From Rob Winch, Spring Security Lead: “我喜欢BCrypt,但一般的建议是单向自适应散列。出于遵从性的原因,一些用户可能需要使用PBKDF2。...正如(GitHub)的历史一次又一次地证明,开发人员对于如何存储他们的秘密考虑得不够仔细。 当然,您可以也应该加密您的敏感数据,比如密码。现在您的密码是安全的,您有一个新的秘密,您的解密密钥!...在Okta,我们所有的生产代码和官方开源项目都需要经过专家安全团队的分析。您的公司可能没有安全专家,但是如果您正在处理敏感数据,那么您应该这样做!

    3.8K30

    哈希算法

    哈希算法的应用非常非常多,最常见的七个,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储。 应用一:安全加密 说到哈希算法的应用,最先想到的应该就是安全加密。...应用四:散列函数 实际上,散列函数也是哈希算法的一种应用。散列函数是设计一个散列表的关键。它直接决定了散列冲突的概率和散列表的性能。...不仅如此,散列函数对于散列算法计算得到的值,是否能反向解密也并不关心。散列函数中用到的散列算法,更加关注散列后的值是否能平均分布,也就是,一组数据是否能均匀地散列在各个槽中。...除此之外,散列函数执行的快慢,也会影响散列表的性能,所以,散列函数用的散列算法一般都比较简单,比较追求效率。 应用五:负载均衡 我们知道,负载均衡算法有很多,比如轮询、随机、加权轮询等。...那如何才能实现一个会话粘滞(session sticky)的负载均衡算法呢?也就是说,我们需要在同一个客户端上,在一次会话中的所有请求都路由到同一个服务器上。

    47474

    哈希算法揭秘

    哈希算法的应用非常非常多,最常见的七个,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储。 应用一:安全加密 说到哈希算法的应用,最先想到的应该就是安全加密。...应用四:散列函数 实际上,散列函数也是哈希算法的一种应用。散列函数是设计一个散列表的关键。它直接决定了散列冲突的概率和散列表的性能。...不仅如此,散列函数对于散列算法计算得到的值,是否能反向解密也并不关心。散列函数中用到的散列算法,更加关注散列后的值是否能平均分布,也就是,一组数据是否能均匀地散列在各个槽中。...除此之外,散列函数执行的快慢,也会影响散列表的性能,所以,散列函数用的散列算法一般都比较简单,比较追求效率。 应用五:负载均衡 我们知道,负载均衡算法有很多,比如轮询、随机、加权轮询等。...那如何才能实现一个会话粘滞(session sticky)的负载均衡算法呢?也就是说,我们需要在同一个客户端上,在一次会话中的所有请求都路由到同一个服务器上。

    61200

    密码加密方式

    混合加密机制 先用计算复杂度高的非对称加密协商一个临时的对称加密密钥(会话密钥,一般相对内容来说要短得多),然后对方在通过对称加密对传递的大量数据进行加解密处理。...test(){ //原始 密码 String source = "123456"; //盐 String salt = "helen"; //散列次数...int hashIterations = 1024; //构造方法: //第一个参数:散列算法 //第二个参数:明文,原始密码 //第三个参数:盐,通过使用随机数 //第四个参数...:散列的次数,比如散列两次,相当 于md5(md5('')) //这个加密的方法名不是乱写的,具体要看api,shiro提供了相当丰富的加密 方式,只是你//写的名字必须要和其一致 SimpleHash...在Web程序中,永远在服务器端进行哈希加密 让密码更难破解:慢哈希函数 PBKDF2、BCRYPT、SCRYPT曾经是最常用的三种密码Hash算法。

    2K30

    数据结构-散列表(上)

    刚刚举的学校运动会的例子,散列函数比较简单,也比较容易想到。但是,如果参赛选手的编号是随机生成的 6 位数字,又或者用的是 a 到 z 之间的字符串,该如何构造散列函数呢?...同理,在删除和查找时,也有可能会线性探测整张散列表,才能找到要查找或者删除的数据。...内容小结 今天我讲了一些比较基础、比较偏理论的散列表知识,包括散列表的由来、散列函数、散列冲突的解决方法。...针对散列函数和散列冲突,今天我只讲了一些基础的概念、方法,下一节我会更贴近实战、更加深入探讨这两个问题。 课后思考 假设我们有 10 万条 URL 访问日志,如何按照访问次数给 URL 排序?...有两个字符串数组,每个数组大约有 10 万条字符串,如何快速找出两个数组中相同的字符串?

    87720

    数据结构(9)-- 哈希表 unordered_map

    文章目录 哈希散列表 小故事 加载因子 哈希函数的安全 关于开链法 unordered_map unordered_map与map的区别 unordered_map 简单使用 哈希散列表 需要我说一下什么是哈希表吗...也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。...2、过去的散列函数是 (车牌号 模除 10000),发现碰撞了就换散列函数 (车牌号加1 模除 10000)试一试。 这叫“再散列法”。...商业转载请联系作者获得授权,非商业转载请注明出处。 ---- 加载因子 无论如何,哈希表中,碰撞无法绝对避免。...解决方案也很简单: 1、提高哈希函数复杂度,想办法加入随机性(相当于每次使用一个不同的哈希函数),避免被人轻易捕捉到弱点 2、不要用开链表法存储冲突数据,采用“再散列法”,并且使用不同的哈希函数再散列

    1.1K11

    数据结构与算法系列之散列表(一)(GO)

    关于散列表的代码实现及下边实践部分的代码实现均可从我的Github获取(欢迎star^_^) 散列思想 概念 散列表(Hash Table),也可以叫它哈希表或者Hash表 散列表用的是数组支持按照下标随机访问数据的特性...比如05110067,其中,前两位05表示年级,中间两位11表示班级,最后四位还是原来的编号1到1000。这个时候该如何存储学生信息,才能够支持通过编号来快速查找学生信息呢? 思路还是跟前面类似。...因为数组下标是从0开始的,所以散列函数生成的散列值也要是非负整数。第二点也很好理解。相同的key,经过散列函数得到的散列值也应该是相同的 第三点理解起来可能会有问题。...对于散列比较均匀的散列函数来说,理论上讲,k=n/m,其中n表示散列中数据的个数,m表示散列表中“槽”的个数 实践 假设我们有10万条URL访问日志,如何按照访问次数给URL排序?...如果 K 非常大(比如大于10万),就使用快速排序,复杂度O(NlogN) 由于文章篇幅的原因,代码实现,我放在了github上,需要的可以自取(GO实现) 有两个字符串数组,每个数组大约有10万条字符串

    1.1K20

    python模块之hashlib

    ,name参数表示要使用的hash算法的名称,可以是上述列出的所有hash算法以及OpenSSL库支持的其他算法。...算法且处理数据量大于2047个字节的update(或创建)操作发生时,将释放python全局解释器锁允许其他线程运行 hash.digest() 截止此方法调用时,update()已接收的数据的摘要,是一个可包含...security shake.digest(length) 同hash.digest() shake.hexdigest(length) 同hash.hexdigest() 密钥导出 密钥导出和扩展算法是为安全密码散列设计的...类似sha1(password)这种简单算法不能有效抵御暴力破解,一个好的密码散列函数必须是可调节的,耗时的,并包含盐 hashlib.pbkdf2_hmac(hash_name, password,...iterations表示迭代次数,基于hash算法以及机器计算能力设置。截止2013年,sha256算法建议最少进行10万次迭代 dklen表示导出密钥的长度。

    73120

    特征工程:Kaggle刷榜必备技巧(附代码)!!!

    这就是函数调用中max_depth参数的含义。在这里,我们将其指定为2以获得两级聚合。...另外,需要注意的是,增加max_depth可能需要更长的时间。 处理分类特征: 标签/二进制/哈希散列和目标/平均编码 创建自动化特征有其好处。...▍哈希散列编码器 可以将哈希散列编码器视为一个黑盒函数,它将字符串转换为0到某个预定值之间的数字。...它与二进制编码器不同,因为在二进制编码中,两个或多个俱乐部参数可能是1,而在哈希散列中只有一个值是1。 我们可以像这样使用哈希散列: ? ? 一定会有冲突(两个俱乐部有相同的编码。...在本次比赛中,我们必须预测旅行的持续时间。我们获得了很多特征,其中上下车的经纬度也在那里。

    5.1K62

    哈希算法

    哈希算法的应用非常非常多,我选了最常见的七个,分别是安全加密、唯一标识、数据校验、散列函数、负载均衡、数据分片、分布式存储。 应用一:安全加密 说到哈希算法的应用,最先想到的应该就是安全加密。...应用四:散列函数 散列函数是设计一个散列表的关键。它直接决定了散列冲突的概率和散列表的性能。不过,相对哈希算法的其他应用,散列函数对于散列算法冲突的要求要低很多。...散列函数中用到的散列算法,更加关注散列后的值是否能平均分布,也就是,一组数据是否能均匀地散列在各个槽中。...除此之外,散列函数执行的快慢,也会影响散列表的性能,所以,散列函数用的散列算法一般都比较简单,比较追求效率。 应用五:负载均衡 我们知道,负载均衡算法有很多,比如轮询、随机、加权轮询等。...那如何才能实现一个会话粘滞(session sticky)的负载均衡算法呢?也就是说,我们需要在同一个客户端上,在一次会话中的所有请求都路由到同一个服务器上。

    42520

    亚马逊机器学习团队开发可离线工作的复杂语音识别模型

    它在很大程度上是可以接受的。通常,处理在几毫秒内完成,但对于没有互联网连接的用户来说是一个明显的问题。 幸运的是,亚马逊的Alexa机器学习团队最近在将语音识别模型脱机方面取得了进展。...需要为数百万个功能存储多个权重才能使ML模型具有内存密集性。” 最终,他们选择了一个由两部分组成的解决方案:参数量化和完美特征散列法。...第二种技术利用了散列函数,正如Strimel写的那样,“接受任意输入并将它们加扰......以这样的方式使得输出(1)具有固定的大小,并且(2)与输入没有可预测的关系。...用散列函数的问题是,他们往往会导致冲突,或相关的值(例如,“Hank Williams, Jr.”和“Hank Williams”)不映射到散列值列表的相同位置。...“系统可以简单地散列一串字符并提取相应的权重而不需要元数据,”Strimel写道。 最后,该团队表示,与在线语音识别模型相比,量化和散列函数使内存使用量减少了14倍。

    57020
    领券