Module bus.crypto

Class Argon2

java.lang.Object
org.miaixz.bus.crypto.center.Argon2

public class Argon2 extends Object
Argon2加密实现
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    默认hash长度
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造,默认使用Argon2Parameters.ARGON2_id类型
    Argon2(int type)
    构造
    Argon2(org.bouncycastle.crypto.params.Argon2Parameters.Builder paramsBuilder)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    digest(char[] password)
    生成hash值
    setAdditional(byte[] additional)
     
    setHashLength(int hashLength)
    设置hash长度
    setIterations(int iterations)
    设置迭代次数 迭代次数越多,生成哈希的时间就越长,破解哈希就越困难
    setMemoryAsKB(int memoryAsKB)
    设置内存,单位KB 内存越大,生成哈希的时间就越长,破解哈希就越困难
    setParallelism(int parallelism)
    设置并行度,即同时使用的核心数 值越高,生成哈希的时间就越长,破解哈希就越困难
    setSalt(byte[] salt)
    设置盐
    setSecret(byte[] secret)
    设置可选的密钥数据,用于增加哈希的复杂性
    setVersion(int version)
    设置版本

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_HASH_LENGTH

      public static final int DEFAULT_HASH_LENGTH
      默认hash长度
      See Also:
  • Constructor Details

    • Argon2

      public Argon2()
      构造,默认使用Argon2Parameters.ARGON2_id类型
    • Argon2

      public Argon2(int type)
      构造
      Parameters:
      type - Argon2Parameters.ARGON2_dArgon2Parameters.ARGON2_iArgon2Parameters.ARGON2_id
    • Argon2

      public Argon2(org.bouncycastle.crypto.params.Argon2Parameters.Builder paramsBuilder)
      构造
      Parameters:
      paramsBuilder - 参数构造器
  • Method Details

    • setHashLength

      public Argon2 setHashLength(int hashLength)
      设置hash长度
      Parameters:
      hashLength - hash长度
      Returns:
      this
    • setVersion

      public Argon2 setVersion(int version)
      设置版本
      Parameters:
      version - 版本
      Returns:
      this
      See Also:
      • Argon2Parameters.ARGON2_VERSION_10
      • Argon2Parameters.ARGON2_VERSION_13
    • setSalt

      public Argon2 setSalt(byte[] salt)
      设置盐
      Parameters:
      salt - 盐
      Returns:
      this
    • setSecret

      public Argon2 setSecret(byte[] secret)
      设置可选的密钥数据,用于增加哈希的复杂性
      Parameters:
      secret - 密钥
      Returns:
      this
    • setAdditional

      public Argon2 setAdditional(byte[] additional)
      Parameters:
      additional - 附加数据
      Returns:
      this
    • setIterations

      public Argon2 setIterations(int iterations)
      设置迭代次数 迭代次数越多,生成哈希的时间就越长,破解哈希就越困难
      Parameters:
      iterations - 迭代次数
      Returns:
      this
    • setMemoryAsKB

      public Argon2 setMemoryAsKB(int memoryAsKB)
      设置内存,单位KB 内存越大,生成哈希的时间就越长,破解哈希就越困难
      Parameters:
      memoryAsKB - 内存,单位KB
      Returns:
      this
    • setParallelism

      public Argon2 setParallelism(int parallelism)
      设置并行度,即同时使用的核心数 值越高,生成哈希的时间就越长,破解哈希就越困难
      Parameters:
      parallelism - 并行度
      Returns:
      this
    • digest

      public byte[] digest(char[] password)
      生成hash值
      Parameters:
      password - 密码
      Returns:
      hash值