2.签名、加解密
<p><strong>2.1依赖</strong></p>
<pre><code>&lt;dependency&gt;
&lt;groupId&gt;cn.hutool&lt;/groupId&gt;
&lt;artifactId&gt;hutool-all&lt;/artifactId&gt;
&lt;version&gt;5.7.16&lt;/version&gt;
&lt;/dependency&gt;
</code></pre>
<p><strong>2.2加密方法</strong></p>
<pre><code>/**
* 内容进行加密
* @param apiClientId 需加密内容 - 商户ID
* @param publicKey 公钥
* @return 加密后信息
*/
public static String encryptByPublicKey(Long apiClientId,String publicKey){
// 初始化基于hutool的 RSA公钥
// 获取RSA对象,RSA构造函数有2个参数,RSA(PrivateKey,PublicKey),公钥加密指向传入PublicKey
//算法 RSA_ECB_PKCS1(&quot;RSA/ECB/PKCS1Padding&quot;)
RSA rsa = new RSA(null, publicKey);
// 调用RSA的encrypt方法把apiClientId名为进行加密
byte[] encrypt = rsa.encrypt(apiClientId.toString().getBytes(), KeyType.PublicKey);
// 把公钥的字节码转化为Base64后,得到加密数据
String encryptedData = Base64.encode(encrypt);
return encryptedData;
}
</code></pre>
<p><strong>2.3签名方法</strong></p>
<pre><code>/**
* 获取签名
* @param encryptedData 加密数据
* @param key 用户key
* @return 签名
*/
public static String generatePrivateSign(String encryptedData ,String key){
// sha256算法做不可逆签名
return SecureUtil.sha256(encryptedData + key);
}
</code></pre>