密码存储与传输的那些事儿(四)Scrypt&Argon2密码哈希

本文介绍了Scrypt和Argon2两种先进的密码哈希算法,对比了它们的安全性和参数设置。Scrypt利用PBKDF2算法,通过N、p、r参数调整CPU和内存消耗。Argon2的参数更加量化,包括并发线程、内存大小和迭代次数,提供更直观的定制方式。虽然两者都强调安全与计算时间,但Argon2在JavaScript中的实现目前尚不常见。
摘要由CSDN通过智能技术生成

Scrpyt    

  如前所述,Scrypt密码哈希的安全性要高于Bcrypt,Scrypt内部还使用了PBKDF2算法,具体算法就不深入研究了,其实从Scrypt的入参就可以看出其安全性,具体入参列表如下:

  • Passphrase:待哈希密码
  • Salt:盐,推荐不小于16字节
  • N:CPU/内存消耗指数,一般取值为2的若干次方,例如16384
  • p:并行计算参数,理论上取值范围为1-255,参数值越大越依赖于并发计算
  • r:表块大小,理论取值范围为1-255,同样越大越依赖内存与带宽
  • dkLen: 表最终生成的结果长度。

      以JAVA代码为例,使用如下Scrypt库

<dependency>
      <groupId>com.lambdaworks</groupId>
      <artifactId>scrypt</artifactId>
      <version>1.4.0</version>
</dependency>

      示例代码如下:

String pwd = "123456";
byte[] salt = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(salt);
long time = new Date().getTime();
System.out.println(toHexString(SCrypt.scrypt(pwd.g
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值