参数加密传输

在我们的项目中需要提供接口给第三方调用,或者我们调用第三方的接口,这样的话传递的参数就需要进行加密处理了不然有些重要的信息会被别人抓包分析拿到。对此我们可以使用对参数加密传递,即使别人抓包拿到数据也是加密之后的,这样做能提高系统的安全性。本文章就讲一个例子,对参数进行加密,调用方传递参数加密,然后到被调用方就行参数解密处理。参数可以是对象、单个属性等。

本文介绍一种使用参数加盐值的方法生成Token,如下文。

添加所需依赖:

<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>

生成Token通用类

package com.example.util;

import io.jsonwebtoken.*;

import java.util.Date;

/**
* \* Created with IntelliJ IDEA.
* \* User: mingtian
* \* Date: 2019/4/24
* \* Time: 22:22
* \* Description:
* \
*/
public class TokenUtil {
/** 定义盐值 md5后结果 **/
private final static String TOKEN_SECRET = "adcf6f2e4aa13e57beb155ba348b8f52";

/**
* 根据userid生成token
* @param userId
* @return
*/
public static String issue(String userId) throws Exception{
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS512;

long nowMillis = System.currentTimeMillis();
Date now = new Date(nowMillis);

JwtBuilder builder = Jwts.builder()
.setId(userId)
.setIssuedAt(now)
.signWith(signatureAlgorithm, TOKEN_SECRET);

return builder.compact();
}

/**
* 分析token,得到userid
* @param token
* @return
*/
public static String parse(String token) throws Exception {
String userId;
try {
Claims claim = Jwts.parser()
.setSigningKey(TOKEN_SECRET)
.parseClaimsJws(token)
.getBody();
userId = claim.getId();
}catch (MalformedJwtException e){
throw new Exception("非法或者无效的token");
}
return userId;
}

public static void main(String[] args) {
try {
String userId = "123456";
System.out.println("加密前参数,userId="+userId);
//加密
String token = TokenUtil.issue(userId);
System.out.println("token = [" + token + "]");
//解密处理
System.out.println("解密后参数,userId=[" + TokenUtil.parse(token) + "]");
}catch (Exception e){
e.printStackTrace();
}
}
}
main方法 输出结果如下:

加密前参数,userId=123456
token = [eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIxMjM0NTYiLCJpYXQiOjE1NTYyNzIzMjV9.14olh1Qp56rGoGn4iv8YVa7paUuIuK7YIRafQzyYnfu16dol6uTMiU6R8awdvjb_gHSXVJ1Govs3JsVQKPzzXg]
解密后参数,userId=123456

由此可以看出来,先对参数加密得到加密后的token,然后把token当成参数进行传递,然后在对token进行解密处理就可以拿到真实的参数了。




猜你喜欢

转载自www.cnblogs.com/ming-blogs/p/10775769.html