PileSignUtils 充电桩互联互通 AES 参数加解密
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
import cn.hutool.crypto.symmetric.AES;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
public class PileSignUtils {
private static Logger logger = LoggerFactory.getLogger(PileSignUtils.class);
/**
* aes 加密
* @param params 待加密参数
* @param dataSecret 密钥
* @param dataSecretIV 密钥向量
* @return 解密结果
*/
public static String signParams(String params,String dataSecret,String dataSecretIV){
AES aes = new AES("CBC","PKCS5Padding",dataSecret.getBytes(),dataSecretIV.getBytes());
return aes.encryptBase64(params);
}
/**
* aes 加密
* @param params 待加密参数
* @param dataSecret 密钥
* @param dataSecretIV 密钥向量
* @return 解密结果
*/
public static String decryptParams(String params,String dataSecret,String dataSecretIV){
AES aes = new AES("CBC","PKCS5Padding",dataSecret.getBytes(),dataSecretIV.getBytes());
return aes.decryptStr(params);
}
public static String getSign(String data,String signSecret,String platformId){
long timeStamp = new Date().getTime();
int nextSequence = SequenceGenerator.getNextSequence();
int len = 64-signSecret.length();
if (signSecret.length()<64){
for (int i = 0; i < len; i++) {
signSecret = signSecret + "0";
}
}
logger.info(signSecret);
byte[] key = signSecret.getBytes();
HMac mac = new HMac(HmacAlgorithm.HmacMD5, key);
String str = mac.digestHex(data);
return str;
}
作者以非凡的视角解读平凡,让文字焕发出别样的光彩。
文章的叙述风格独特,用词精准,让人回味无穷。
?未来展望类?
若能在案例选择上更贴近现实,说服力会进一步提升。
修辞手法运用娴熟,比喻贴切,感染力强。
跳出常规思维,角度独特,令人耳目一新。
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。