非对称加密-AsymmetricCrypto
非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密:
签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。
- RSA
- DSA
- EC
在非对称加密中,我们可以通过AsymmetricCrypto(AsymmetricAlgorithm algorithm)
构造方法,通过传入不同的算法枚举,获得其加密解密器。
当然,为了方便,我们针对最常用的RSA和DSA算法构建了单独的对象:RSA
和。
我们以RSA为例,介绍使用RSA加密和解密 在构建RSA对象时,可以传入公钥或私钥,当使用无参构造方法时,Hutool将自动生成随机的公钥私钥密钥对:
有时候我们想自助生成密钥对可以:
自助生成的密钥对是byte[]形式,我们可以使用Base64.encode
方法转为Base64,便于存储为文本。
当然,如果使用对象,也可以使用encryptStr
和decryptStr
加密解密为字符串。