生成公私钥
cn.hutool:hutool-all:5.7.16
KeyPair keyPair = SecureUtil.generateKeyPair("RSA",512);
productDTO.setSecretPrivate(Base64.encode(keyPair.getPrivate().getEncode()));
productDTO.setSecretPublic(Base64.encode(keyPair.getPublic().getEncode()));
//给一个产品分配一个paikey ,根据apikey到库中查询 公私钥 SecretKey 自定义对象 两个字段公私钥
SecretKey secretKey = secretKeyService.getSecretKey(apiKey);
//这个是body的值,
str = "sdfkljlxoasjojwopennalsknaslfjaslfalfjlskjvlkslflsalasjls";
JSONObject signContent = JSONUtil.parseObj(Base64.decodeStr(str));
String rsaSign = signContent.getStr("sign");
String content= Base64.decodeStr(signContent.getStr("content"));
String aesKey = SecureUtil.rsa(secretKey.getPrivateKey(),secretKey.getPublicKey()).decryptStr(rsaSign,KeyType.PrivateKey);
return SecureUtil.aes(aesKey.getBytes(StandardCharsets.UTF_8)).decryptStr(content);
公钥加密 私钥解密
appkey 生成规则:
SecureUtil.md5(productDTO.getProductCode()+productDTO.getName()+System.currentTimeMillis());