接口数据传输加密

                                           数据加密

场景:我们客户端请求服务端时数据正常都是明文传输,这样的话容易出现数据安全漏洞

例子:登录注册时传输的密码,还是用户个人敏感信息,都是明文传输的话就太不安全了

解决:所以我们在客户端传输的时候,用非对称加密算法RSA进行加密保护数据传输,服务端生成公私钥后保存,公钥给客户端进行加密,私钥在我们的服务端进行数据解密,私钥要保护好!私钥要保护好!私钥要保护好!

代码:

// 需要的夹包依赖maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.5</version>
</dependency>
// lombok idea插件自己装
package com.common.utils;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import lombok.extern.slf4j.Slf4j;
/**
* @author HeZeMin
* @className RsaBase64Utils
* @description RSA非对称加密,base64转码
* @date 2020/7/3 10:24
*/
@Slf4j
public class RsaBase64Utils {
// AES+base64编码秘钥,解密需要base64解码-test
public static final String AES_BASE64_KEY = "";
// 公钥-用于加密
private static final String PUBLIC_KEY = "xxxxxxxxxxx";
// 私钥-用于解密
private static final String PRIVATE_KEY = "xxxxxxxxxxxxxxxxxxxxxxxx";
/**
*
* @Description 根据base64编码串,先base64解码再进行RSA私钥解密
* @Return: java.lang.String
* @Author HeZeMin
* @Date 2020年07月03日 10:27
*/
public static String decrypt(String base64DecodeStr) throws Exception {
try {
RSA rsa1 = new RSA(PRIVATE_KEY, null);
byte[] decode = Base64.decode(base64DecodeStr);
byte[] decrypt = rsa1.decrypt(decode, KeyType.PrivateKey);
return StrUtil.utf8Str(decrypt);
} catch (Exception e) {
throw new Exception("密码解密失败!");
}
}
/**
*
* @Description 把数据进行RSA公钥加密,再base64编码
* @Return: java.lang.String
* @Author HeZeMin
* @Date 2020年07月03日 10:28
*/
public static String encrypt(String dataStr){
RSA rsa = new RSA(null, PUBLIC_KEY);
byte[] encrypt = rsa.encrypt(StrUtil.bytes(dataStr, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
String encode = Base64.encode(encrypt);
return encode;
}
public static void main(String[] args) {
RSA rsa = new RSA();
//获得私钥
log.info("getPrivateKeyBase64:{}", rsa.getPrivateKeyBase64());
//获得公钥
log.info("getPublicKeyBase64:{}", rsa.getPublicKeyBase64());
}
}

 

 

 

 

 

 

posted @   何童鞋  阅读(439)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示