编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

开发平台的接口安全设计?你了解多少?

wxchong 2024-07-29 08:03:19 开源技术 12 ℃ 0 评论

序言

对于开发平台接口提供者,需要一些机制,保证对外接口调用的安全性,一般两种方案

  • MD5加密
  • RSA加密

接口设计

  • 入参

请求id:用来区分请求

sysCode: 系统唯一标识

timestamp:时间戳 ,用来检验接口一定时间以内可通过,超过时间,算失效

signType:签名类型 1-MD5 2-RSA

sign:签名内容,与服务侧按照一定规则,加密后值是否一致

content:请求内容

  • 校验逻辑
//MD5  伪代码 
//先判断入参时间戳与当前时间相隔是否大于5分钟
currentTime-timestamp>5
//获取公钥
secret=sysService.getSecretBySysCode(sysCode);
//按照传参的参数先后顺序进行拼接
String  str="sysCode="+sysCode+"×tamp="+timestamp+"&content="+content+"&secret=" + secret;
//加密后服务侧签名
String serviceSign =DigestUtils.md5Hex(str)
//比较服务侧与入参的签名是否一致
if (!sign.equals(serviceSign)) {
		//验签失败
	}

//RSA 伪代码 
逻辑同上,唯一不同的是,入参sign是私钥加密,到服务侧公钥解密,进行比对
  • AES秘钥生成

KeyGenerator keyGen = KeyGenerator.getInstance("AES");

  • RSA秘钥对生成

KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");

每天不断更,精彩不停止,明天见,我是行者

记得留个关注、点赞、评论哟,让我们一起去看星辰大海,品味代码人生

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表