Class Asymmetric<T extends Asymmetric<T>>

java.lang.Object
org.aoju.bus.crypto.asymmetric.Asymmetric<T>
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AbstractCrypto, Sign

public class Asymmetric<T extends Asymmetric<T>> extends Object implements Serializable
非对称基础,提供锁、私钥和公钥的持有
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

    • lock

      protected final Lock lock
    • algorithm

      protected String algorithm
      算法
    • publicKey

      protected PublicKey publicKey
      公钥
    • privateKey

      protected PrivateKey privateKey
      私钥
  • Constructor Details

    • Asymmetric

      public Asymmetric(String algorithm, PrivateKey privateKey, PublicKey publicKey)
      构造 私钥和公钥同时为空时生成一对新的私钥和公钥 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
      Parameters:
      algorithm - 算法
      privateKey - 私钥
      publicKey - 公钥
  • Method Details

    • init

      protected T init(String algorithm, PrivateKey privateKey, PublicKey publicKey)
      初始化 私钥和公钥同时为空时生成一对新的私钥和公钥 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密(签名)或者解密(校验)
      Parameters:
      algorithm - 算法
      privateKey - 私钥
      publicKey - 公钥
      Returns:
      this
    • initKeys

      public T initKeys()
      生成公钥和私钥
      Returns:
      this
    • getPublicKey

      public PublicKey getPublicKey()
      获得公钥
      Returns:
      获得公钥
    • setPublicKey

      public T setPublicKey(PublicKey publicKey)
      设置公钥
      Parameters:
      publicKey - 公钥
      Returns:
      this
    • getPublicKeyBase64

      public String getPublicKeyBase64()
      获得公钥
      Returns:
      获得公钥
    • getPrivateKey

      public PrivateKey getPrivateKey()
      获得私钥
      Returns:
      获得私钥
    • setPrivateKey

      public T setPrivateKey(PrivateKey privateKey)
      设置私钥
      Parameters:
      privateKey - 私钥
      Returns:
      this
    • getPrivateKeyBase64

      public String getPrivateKeyBase64()
      获得私钥
      Returns:
      获得私钥
    • setKey

      public T setKey(Key key)
      设置密钥,可以是公钥PublicKey或者私钥PrivateKey
      Parameters:
      key - 密钥,可以是公钥PublicKey或者私钥PrivateKey
      Returns:
      this
    • getKeyByType

      protected Key getKeyByType(KeyType type)
      根据密钥类型获得相应密钥
      Parameters:
      type - 类型 KeyType
      Returns:
      Key