关于web签名以及参数加密的个人想法

1 涉及加密算法

  • AES
  • RSA
  • MD5

2 安全中心设计

工作中发现的问题:
    工作中使用springcloud,发现很多模块大家把对称加密的Key硬编码工程中,如果想更换key
那么要把所有的项目都更换一次,当然也许有人说使用jar依赖搞定,其实问题依旧,我们现在
公司大概有十几个服务,总不能更换一次Key让所有的项目重新打包部署吧?

2.1 首先个人觉得对称加密的Key应该保持一定的时间进行更换,防止对称加密Key外泄的可能性,其次这个
过程应该是动态完成的,在这里主要指的是我工作常用的AES加密和RSA加密

2.2 当然如果按照2.1所说,那么就有一个问题,怎么来保证每次更换Key能及时通知到其他客户端以及后台各个模块?

首先把这个问题分为两块:
    1. 后端: 由于现在微服务的火热,后端存在多个模块,可以直接把Key放入彼此信赖的中
间件中,比如redis、Mysql等, 可以做到动态实时获取最新的key,因为这些对称加密底层代
算法以及代码实现都是一样的,当然也可以做成一个starter,直接导入依赖即可简单配置即
可,这里可以包含工作中常用的工具类或需要注入IOC容器的bean
    2. 客户端: 
   这里主要指的是安卓IOS和PHP, 因为我们公司主要是java提供接口,其他客户端调用,
对于这样的客户端直连redis和mysql等中间件会存在一定安全的问题,所以后端的方案不
太适合客户端,硬编码也会存在问题。
   这里可以使用RAR和AES配合搞定,客户端启动后发送请求到后端,后端用RSA算法
生成一个公pubKey1一个私钥priKey1,将公钥返回客户端。客户端利用RAR算法也生成一
个公钥pubKey2和一个私钥priKey2,将pubKey2通过后端公钥pubKey1进行加密发送到服
务端。此时服务端接收到客户端进行公钥pubKey1加密后的数据,利用priKey1解密,即可
得到客户端的公钥pubKey2。然后服务端获取对称加密的Key用公钥pubKey2加密返回给客
户端,客户端解密其返回AES加密后的数据,即达到了动态获取key的效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,967评论 0 6
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 8,277评论 0 14
  • 不久前我和几个朋友一起去云南玩儿了,印象最深刻的当属雨崩了吧。传说“去不了天堂,就去雨崩吧”,雨崩很美,美的似乎是...
    熊师娘阅读 3,325评论 12 8

友情链接更多精彩内容