★★★开发前必读
基本说明
1.
2.
{"chain_id":"wenchang-tianhe","class_id":"dasdsa","nft_id":"dasdsa","recipient":"dasdsa",
"recipient_phone":"17381842007","sender":"dasdsa","tx_hash":"dasdsa"}
3.
4.
5.
SHA1withRSA加密工具类
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.Sign;
import cn.hutool.crypto.asymmetric.SignAlgorithm;
import java.util.Base64;
public class SignUtils {
public static boolean verifySign(String resData, String signData, String publicKey) {
Sign sign = SecureUtil.sign(SignAlgorithm.SHA1withRSA,null, publicKey);
//注意Base64
return sign.verify(resData.getBytes(CharsetUtil.CHARSET_UTF_8), Base64.getDecoder().decode(signData));
}
public static String sign(String respData, String platformPrivateKey, String platformPublicKey) {
Sign sign = SecureUtil.sign(SignAlgorithm.SHA1withRSA, platformPrivateKey, platformPublicKey);
byte[] signed = sign.sign(respData.getBytes(CharsetUtil.CHARSET_UTF_8));
//注意Base64
return Base64.getEncoder().encodeToString(signed);
}
}
AES
import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.core.util.RandomUtil;
import org.junit.Assert;
import org.junit.Test;
public class AesTest {
@Test
public void aes() {
String key=RandomUtil.randomString(32);
System.out.println(key);
//默认的AES加密方式:AES/ECB/PKCS5Padding
AES aes=new AES(key.getBytes(StandardCharsets.UTF_8));
Assert.assertEquals(key,new String(aes.getSecretKey().getEncoded(),StandardCharsets.UTF_8));
//注意Base64
String encrypt = Base64.encode(aes.encrypt("18692709323".getBytes(StandardCharsets.UTF_8)));
System.out.println("加密:"+encrypt);
//注意Base64
System.out.println("解密:"+new String(aes.decrypt(Base64.decode(encrypt)),StandardCharsets.UTF_8));
}
}
修改于 2023-01-17 03:11:27