SpringBoot中幸运飞艇网站制作接口加密解密统一处理

在和客户端中的接口交互时,要取得更高的安全性,幸运飞艇网站制作q<217.17.9.34.0.8>或许我们需要对其进行加密(请求参数加密和服务端解密)、信息返回加密(服务端加密和客户端解密),然后不是所有接口都如此,有些接口可能不用,可以通过注解来简单达到此要求。

将接口参数的加密解密和返回信息的加密解密分开,分别定义注解,利用Controller的ControllerAdvice来拦截所有的请求,在其中判断是否需要加密解密,即可达到要求。
使用方法:使用 DecryptRequest 和 EncryptResponse 注解即可,可以放在Controller的类和方法上,其中一个为false就不执行了。像这样:
@RestController
@RequestMapping("/test")
//@DecryptRequest
@EncryptResponse
public class TestController {
    @Autowired
    @Qualifier("rrCrypto")
    private Crypto crypto;
 
    @DecryptRequest(false)
    @EncryptResponse(false)
    @RequestMapping(value = "/enc" , method = RequestMethod.POST)
    public String enc(@RequestBody String body){
        return crypto.encrypt(body);
    }
}
定义参数解密的注解,DecryptRequest。
/**
 * 解密注解
 *
 * <p>加了此注解的接口(true)将进行数据解密操作(post的body) 可
 *    以放在类上,可以放在方法上 </p>
 * @author xiongshiyan
 */
@Target({ElementType.METHOD , ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DecryptRequest {
    /**
     * 是否对body进行解密
     */
    boolean value() default true;
}
定义返回信息加密的注解,EncryptResponse。
/**
 * 加密注解
 *
 * <p>加了此注解的接口(true)将进行数据加密操作
 *    可以放在类上,可以放在方法上 </p>
 * @author 熊诗言
 */
@Target({ElementType.METHOD , ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EncryptResponse {
    /**
     * 是否对结果加密
     */
    boolean value() default true;
}
这两个注解可以放在类和方法上,遵循一样的逻辑,即:类上的注解 && 方法上的注解,一方没有即为true,都为false为false。逻辑主要在 NeedCrypto 中。

原文地址:https://www.cnblogs.com/gaoxingyixia/p/11286755.html

时间: 2024-10-12 23:56:37

SpringBoot中幸运飞艇网站制作接口加密解密统一处理的相关文章

SpringBoot中如何灵活的实现接口数据的加解密功能?

数据是企业的第四张名片,企业级开发中少不了数据的加密传输,所以本文介绍下SpringBoot中接口数据加密.解密的方式. 本文目录 一.加密方案介绍二.实现原理三.实战四.测试五.踩到的坑 一.加密方案介绍 对接口的加密解密操作主要有下面两种方式: 自定义消息转换器 优势:仅需实现接口,配置简单.劣势:仅能对同一类型的MediaType进行加解密操作,不灵活. 使用spring提供的接口RequestBodyAdvice和ResponseBodyAdvice 优势:可以按照请求的Referrer

不同云服务器的含义 幸运飞艇网站源码搭建详解

由于云服务物美价廉的映象已经深入人心,因此深受初涉互联网的站长的青睐.但是现在网上有各式各样且不同名称的云服务,比如,幸运飞艇网站源码搭建bbs.yasewl.com (q_917_899_899)阿里云.葵芳云等,让人分辨不清.因此葵芳idc小编今天就跟大家一起了解下不同类型云服务器的释义. 私有云 私有云是为一个企业或机构单独使用而构建的,可由企业自己的IT机构,也可由云提供商进行构建.使用此类“云”的企业可以控制基础设施上部署应用程序的方式,赋予企业对于云资源使用情况的极高水平的控制能力,

iOS中使用RSA对数据进行加密解密

RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装. Java 8 RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key). 公钥(publ

redhat multipath中幸运飞艇源码搭建出售配置文件简要说明

redhat multipath多路径文件大致分为是两个部分,幸运飞艇源码搭建出售Q[1152880099]multipath和device部分. 使用 mpathconf 程序设置多路径,它可创建多路径配置文件 /etc/multipath.conf.如果 /etc/multipath.conf 文件已存在,mpathconf 程序将会编辑该文件.如果 /etc/multipath.conf 文件不存在,mpathconf 程序将使用 /usr/share/doc/device-mapper-

利用PBFunc在Powerbuilder中进行国密SM4的加密解密操作

利用PBFunc的n_pbfunc_cryp对象可以很方便的进行SM4的加密解密操作,其中ECB不需要向量IV,其它模式需要IV 代码下载地址:https://download.csdn.net/download/my_aa/12309197 SM4加密: 1 //可用 http://aks.jd.com/tools/sec/ 对比结果 2 string ls_data 3 ls_data = sle_1.Text//要加密的数据 4 string ls_key 5 ls_key = sle_k

详解Springboot中自定义SpringMVC配置

详解Springboot中自定义SpringMVC配置 WebMvcConfigurer接口 ? 这个接口可以自定义拦截器,例如跨域设置.类型转化器等等.可以说此接口为开发者提前想到了很多拦截层面的需求,方便开发者自由选择使用.由于Spring5.0废弃了WebMvcConfigurerAdapter,所以WebMvcConfigurer继承了WebMvcConfigurerAdapter大部分内容. WebMvcConfigurer接口中的方法 举例1:configurePathMatch配置

iOS base64加密解密

本文转载至 http://jingyan.baidu.com/article/93f9803fff45c9e0e46f5596.html 从参考资料的地址中下载GTMBase64.zip库文件包,并解压,获得GTMBase64.h,GTMBase64.m和GTMDefines.h三个文件. 将解压得到的三个文件,添加到项目中. 新建一个base64的类,在base64.h中天假四个函数: + (NSString*)encodeBase64String:(NSString*)input; + (N

nodejs加密解密

nodejs是通集成在内核中的crypto模块来完成加密解密. 常用加密解密模块化代码: /** * Created by linli on 2015/8/25. */ var crypto = require('crypto'); //加密 exports.cipher = function(algorithm, key, buf) { var encrypted = ""; var cip = crypto.createCipher(algorithm, key); encrypt

MAC系统用RSA 对数据进行加密解密

创建密钥对 在终端中一次输入下面的脚本 openssl genrsa -out private_key.pem 1024 openssl req -new -key private_key.pem -out rsaCertReq.csr openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt openssl x509 -outform der -in rsaCert.crt