C#请求JavaAPI接口安全校验流程【线下系统定制】(精简版)

简介: 我始终相信,分享的越多收获的就越多!所以这里把我最近几天钻研的项目安全校验机制流程实现与细节分享给大家!

利用RSA加密算法,MD5加密算法,签名认证机制,Token校验机制,时间戳失效机制

加密解密流程


演变一


  1. C# 利用RSA加密算法对账号密码进行加密,POST请求到Java后端,(加密算法的参数是用公钥进行加密的)
  2. Java后端接收之后先把接收的数据处理一下(坑)(前后端传输的时候存在转义字符,转义字符是自动变成空格,我接触到的是+号,还有很多比如 (  [   {  /  ^  -  $   ¦  }  ]  )   ?  *  +    . )
  3. 字符串转换之后,再利用RSA解密算法(解密算法的参数是用私钥进行解密的)
  4. 解密之后剩下的就是常规操作了


演变二


问题来了: 难道是什么时候都可以请求 后端服务接口吗,总有一天会被黑客破解掉 然后干倒我们的!

  1. 时间戳校验失效机制上场了。
  2. 通过获取(后端)当前时间戳函数——前端传过去的时间戳函数=失效时间
  3. 我这里的失效时间是5秒中,5秒钟不发生响应我就认为失效了,你必须重新请求

System.currentTimeMillis() - time > 1 * 50 * 1000


演变三


兜兜转转,我们好像遗留了最初的问题!接口身份! 为什么可以访问?

  1. Token身份验证出来了。为什么要把Token放在这里输出呢,因为我这是CS端的Token,意思也就是说,Token的用处是 验证登录之后的请求是否被后端允许,而不是第一次。
  2. 这里是一大堆验证成功之后,我会把Token放在json里发给前端。然后以供前端下次请求应用

String jsonConcat=JsonUnit.JSONMain(1, UUID.randomUUID().toString(),merchant,1);


演变四


最后一步,也是这里的大结局了!签名机制,验证以上信息是否被篡改

  1. 我的操作流程就是通过客户端对账号密码和盐一系列的MD5加密,因为MD5是不可逆的,所以利用MD5来进行签名验证是最合适不过了。
  2. 客户端请求API发送的签名参数{e3e7a8a0c40f3629e87072ae237e3acd},到底和谁比较呢?
  3. 前端传递的账号,密码用公钥RSA加密过后的密文,后端通过私钥进行RSA解密,解密之后再进行账号密码盐的拼接进行MD5进行加密
  4. 到了这一步估计大家都懂了。也就是后端RSA解密的信息重新加密和前端的签名数据进行比较!


数据接收处理


  1. 创建一个接收Json包基类(这个基类一定要是泛型)
  2. 在基类中要有一个泛型的对象用于随时随地扩展接收的各种数据
  3. 接收过来之后要用JsonConvert.DeserializeObject(json字符串) 变换成对象处理使用
  4. 最后一步就是实体列表转换格式放入C#的显示UI界面

这个项目设计到跨国业务,收费项目,无法公布太多,抱歉!


image.png

总结


如果以上信息听的有点糊里糊涂的,可以学习一下我之前整理的HTTPS底层原理!完美的解释了浏览器的所有的访问流程以及原理!


相关文章
|
1月前
|
开发框架 前端开发 JavaScript
C# 6.0+JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案
云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检验数据进行集中管理和共享,通过对质量控制的管理,最终实现区域内检验结果互认。其目标是以医疗服务机构为主体,以医疗资源和检验信息共享为目标,集成共性技术及医疗服务关键技术,建立区域协同检验,最大化利用有限的医疗卫生资源。
109 1
|
1月前
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
53 2
|
1月前
|
安全 测试技术 C#
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成?
C#手术麻醉系统源码集成到医院信息系统涉及标准数据接口、患者信息同步、医嘱报告共享、实时监测数据传输及安全权限管理。通过这些步骤,确保信息的准确、及时和安全流动,提升医疗效率和服务质量。系统集成后需测试优化,以保证稳定性。图片展示了集成的不同方面。
27 0
|
1月前
|
XML 安全 JavaScript
B/S基于C#手术麻醉信息系统源码 手麻系统源码 有演示
手术室麻醉临床信息系统是应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期,对病人进行全程跟踪与信息管理,自动集成病人HIS、LIS、RIS、PACS信息,采集监护等设备数据,根据质控要求自动生成电子单据, 系统提供智能手术排班、科室耗材管理、麻醉收费、主任管理、电子处方等业务功能,高度整合各科室应用需求,实现手术麻醉过程的无纸化和医疗流程的规范化,为手术室全面信息化提供了整体解决方案。
27 1
B/S基于C#手术麻醉信息系统源码 手麻系统源码 有演示
|
1月前
|
传感器 数据采集 大数据
C#/BS手麻系统源码 手术麻醉管理系统源码 商业项目源码
手麻系统从麻醉医生实际工作环境和流程需求方面设计,与HIS,LIS,PACS,EMR无缝连接,方便查看患者的信息;实现术前、术中、术后手术麻醉信息全记录;减少麻醉医师在手术中填写麻醉记录单时间,证手术麻醉相关信息的准确性,有效降低医护人员的术中书写医疗文书的压力,使得麻醉医生在术中能够更加集中精力在病人的麻醉操作上,提升手术质量
30 2
|
9天前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
20 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
2天前
|
前端开发 测试技术 C#
如何开发一套基于C#和.NET 6.0手术麻醉系统? 手术麻醉系统源码
如何开发一套基于C#和.NET 6.0手术麻醉系统?
10 1
|
1月前
|
存储 运维 BI
基于C#-VC-MSSQL开发的全套PACS系统源码 3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升医疗水平的目地;
29 1
基于C#-VC-MSSQL开发的全套PACS系统源码  3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
|
29天前
|
安全 API C#
C#.Net筑基-类型系统②常见类型--枚举Enum
枚举(enum)是C#中的一种值类型,用于创建一组命名的整数常量。它们基于整数类型(如int、byte等),默认为int。枚举成员可指定值,未指定则从0开始自动递增。默认值为0。枚举可以与整数类型互相转换,并可通过`[Flags]`特性表示位域,支持位操作,用于多选场景。`System.Enum`类提供了如`HasFlag`、`GetName`等方法进行枚举操作。
|
29天前
|
编译器 C#
C#.Net筑基-类型系统②常见类型 --record是什么类型?
`record`在C#中是一种创建简单、只读数据结构的方式,常用于轻量级数据传输。它本质上是类(默认)或结构体的快捷形式,包含自动生成的属性、`Equals`、`ToString`、解构赋值等方法。记录类型可以继承其他record或接口,但不继承普通类。支持使用`with`语句创建副本。例如,`public record User(string Name, int Age)`会被编译为包含属性、相等比较和`ToString()`等方法的类。记录类型提供了解构赋值和自定义实现,如密封的`sealed`记录,防止子类重写。