美文网首页
不同场景的加密方式选择

不同场景的加密方式选择

作者: 蓄意为负数 | 来源:发表于2020-07-08 11:32 被阅读0次

[TOC]

一、非对称加密

1 非对称加密算法应用方式

  • 银行自己生成公钥、私钥,将自己的公钥提供给集成商下载。
  • 集成商自己生成公钥、私钥,将自己的公钥上传到银行系统中。

2 算法加解密方式

1)私钥加密公钥解密

  • 场景:适用于双方均需要核验用户身份的场景,如: A 会主动与 B 进行接口交互,B 也会主动与 A 进行接口交互,双方均需要验证各自的身份。
  • 优点:可防止数据被篡改、同时可有效验证接口调用方的身份
  • 缺点:数据保密性程度不够
  • 应用领域:互为接口提供方与接口消费方,银行与集成厂商

2)私钥解密公钥加密

  • 场景:适用于数据加密的场景,如: A 会主动与 B 进行数据交互,B 也会主动与 A 进行数据交互,数据保密性程度要求高
  • 优点:数据保密性程度高
  • 缺点:数据可能被伪造
  • 应用领域:政府内部系统间接口交互,公文交换类系统

3 常用的非对称加密算法

RSA、DSA、ECDSA 等

二、对称加密

1 对称加密算法应用方式

  • 服务提供商生成 appid、appkey ,将二者信息保存,并提供给集成商。
  • 集成商获取到 appid、appkey ,进行接口服务调用时数据加密或签名。

2 算法使用方式

1)使用appkey 进行数据加解密,appid 用来关联获取对应的appkey

  • 场景:主要为服务提供类接口,双方信任度很高,可以忽略双方数据伪造的场景,另外,加密一 般不涉及到相互接口的调用
  • 优点:实现简单,不用单独生成公钥、私钥
  • 缺点:appkey 双方共有,哪方发生信息泄露不利于追责
  • 应用领域:应用类服务的提供商,如:服务市场中的,短信类、基础信息查询类服务

3 常用的对称加密算法

DES、AES 等

三、其它

在数据加密要求低,需要单独验证接口调用方身份的场景时,可使用 appid、appkey 进行数据签名。

实现方式:
1)签名生成
将接口业务请求参数获取后,按参数名的属性名字典序排序后,将对应属性值、对应的appkey、接口调用时间加入到待签名的字符串中,基于字符串进行MD5 处理,将具体值作为 sign 值进行参数传递,另外需额外传递对应的appid、接口调用时间time。
2)签名验证
接口提供方,获取到接口对应的业务参数,与附带的 sign、appid、time后,先判断time 是否在合理的时间周期内,如果不合理直接返回异常。否则,进行逆向构建对应的数据签名串,同样使用 MD5 进行签名生成,对生成的值与sign值进行比较,不匹配则验签失败。

注:如果接口中包含 request body 中的参数,可以将 body 中的参数直接以字符串的形式接收后,之前拼接到待签名的串中。

相关文章

网友评论

      本文标题:不同场景的加密方式选择

      本文链接:https://www.haomeiwen.com/subject/yjwqcktx.html