当前位置:首页 » 密码管理 » 对json串加密解密

对json串加密解密

发布时间: 2025-04-26 16:49:17

1. SpringBoot 请求消息体解密(通信加密解密)

在一些安全性要求较高的项目中,我们希望客户端请求数据可以做到数据加密,服务器端进行解密。(单纯的HTTPS仍难以满足安全需要。)

本文基于SpringBoot针对消息体进行解密,目前仅支持请求消息解密。(响应消息过大情况下,加密会带来严重的性能问题。)

流程如下:
使用DES cbc模式对称加密请求体。要求客户端请求前加对消息体进行加密,服务器端通过SpringMVC Advice拦截请求解密后,传给controller的方法。

@ControllerAdvice注解可以扫描针对Controller层的扩展组件。通过@Sort注解可以使其支持顺序加载。
RequestBodyAdviceAdapter是RequestBodyAdvice适配器类,可以方便的扩展所需要的方法。

RequestBodyAdvice功能如下:
允许在请求消息体在被读取及调用convert转换成实体之前做一些个人化操作,作用于含有@RequestBody注解的请求。实现此接口的类,需要在RequestMappingHandlerAdapter中配置或通过@ControllerAdvice注解配置。

原文如下:

使用以下注解即可快速开启全部请求的服务器端消息体解密功能。

使用scan-annotation可开启注解所标注的Conrtoller的类或其方法的解密功能。将要解密的方法或类上添加@SecretBody注解。并开启以下配置:

可以使用annotation-class配置自己的自定义注解:

作用于整个类:

作用于方法:

默认密钥如下,可以自行修改

前端调用时,需先将要请求的消息体通过DEScbc模式加密消息体(如json字符串)后传输。一般在http工具的请求拦截器中进行处理。如为json,仍然需要指定content-type为application/json。
postman请求示例如下:

2. .NET进阶篇04-Serialize序列化、加密解密

知识需要持续积累、总结与沉淀,思考与写作是促进成长的催化剂。本文内容轻松,重在代码展示与实践,对大脑挑战不大,故解析部分较少,代码段落较多,旨在提供直接可用的技术指南。

一、概述

序列化是将内存中的对象转换为持久化的二进制数据形式,用于存储或传输,主要目的是实现不同平台间通信。序列化与反序列化作用互补,前者将对象状态保存,后者则还原对象状态。类上添加Serializable特性标记,允许序列化,非序列化字段通过NonSerialized特性排除。泛型类BinarySerializeHelper可包装BinaryFormatter,简化序列化过程。

加密技术通过编码消息,构建安全交流机制,确保消息仅由发送者与期望接收者理解。加密安全性的三个关键点:信息不可篡改、保护隐私和防止抵赖。

二、序列化

BinaryFormatter用于对象的二进制序列化与反序列化。创建实例,调用Serialize方法写入文件流,反序列化时调用Deserialize方法。

XML序列化使用XmlSerializer类,无需Serializable特性,实例化时需指定待序列化的对象类型。

JSON支持更轻量的数据传输,.NET提供DataContractJsonSerializer和JavaScriptSerializer进行转换,JavaScriptSerializer兼容更广泛,且可序列化匿名类型。

三、加解密

加密分为不可逆、对称可逆与非对称可逆三种方式。MD5(不可逆加密)提供单向散列,输入任意长度信息生成固定长度摘要。MD5应用包括防止信息篡改、保护隐私与数字签名,但因破解风险,现代推荐使用更安全的加密方法。

对称加密(如DES、AES、Blowfish)使用单一密钥进行加密与解密,易于实现但密钥安全需严格管理。C#版本DES加解密实现示例。

非对称加密(如RSA)采用公钥与私钥对,确保信息只能由持有相应密钥的双方解密与加密。结合MD5散列算法,实现数字签名,确保信息未被篡改,但明文传输仍存在安全风险。C#版本RSA加解密实现示例。

总结,本文聚焦于.NET框架中的序列化与加密解密技术,通过代码示例详细介绍了BinaryFormatter、XML序列化、JSON序列化以及MD5、DES、AES、RSA等加密算法的使用方法与应用场景,旨在为开发者提供直观、实用的技术指南。

热点内容
上海长江存储有厂房吗 发布:2025-04-26 23:08:18 浏览:893
bgp的路由算法 发布:2025-04-26 22:59:07 浏览:429
怎么设置苹果密码解锁屏幕锁 发布:2025-04-26 22:54:52 浏览:986
安卓怎么用r导入图片 发布:2025-04-26 22:52:56 浏览:295
安卓平板手机怎么截图 发布:2025-04-26 22:30:21 浏览:985
主机域名是不是服务器地址 发布:2025-04-26 22:27:19 浏览:126
低配置手机能玩哪些吃鸡手游 发布:2025-04-26 22:24:35 浏览:293
穿越火线的截图在哪个文件夹 发布:2025-04-26 22:15:55 浏览:731
java线程启动线程 发布:2025-04-26 21:58:34 浏览:131
commonlisp编程 发布:2025-04-26 21:56:08 浏览:239