类 KeyExchangeController


  • @ApiVersion(2.3)
    @RestController
    @RequestMapping("/open/{version}/keyExchange")
    public class KeyExchangeController
    extends Object
    RSA密钥交换加密

    1. 前端大写UUID → 后端返回RSA公钥

    2. 前端生成RSA密钥对 → 前端通过后端RSA公钥加密前端RSA公钥并传输给后端 → 后端通过私钥解密前端的RSA公钥 → 后端通过前端RSA公钥加密AES密钥响应给前端

    好处:

    1. 最终的对称加密(AES)密钥未在传输过程中泄露

    2. 每次会话生命周期中的加密密钥都是随机的

    从以下版本开始:
    2021/4/12
    作者:
    ylyue
    • 构造器详细资料

      • KeyExchangeController

        public KeyExchangeController()
    • 方法详细资料

      • getExchangeKey

        @PostMapping("/{storageKey}")
        public Result<?> getExchangeKey​(@PathVariable
                                        String storageKey,
                                        ExchangeKeyEnum exchangeKeyType,
                                        @Nullable
                                        String encryptedClientPublicKey)
        获得交换密钥
        参数:
        storageKey - 密钥存储标识
        exchangeKeyType - 交换密钥类型
        encryptedClientPublicKey - 服务端公钥加密的客户端公钥(第二步逻辑必填参数)
        返回:
        第一次返回:服务端公钥

        第二次返回:客户端公钥加密的交换密钥

      • addAlias

        @PostMapping("/{storageKey}/addAlias")
        public Result<?> addAlias​(@PathVariable
                                  String storageKey,
                                  String storageKeyAlias)
        添加存储key别名
        参数:
        storageKey - 存储时的唯一键,如:UUID、token、userId等。
        storageKeyAlias - 存储别名