获取 AES 密钥的 API 接口 - 服务端实现
// 处理获取 aes key 请求 if (r.getHeader('Request-Aes-Key-Id') != null) { // Jedis jedis = pool.getResource(); // jedis.close(); Rsa cr; try { cr = new Rsa(base64Decode(priKey), base64Decode(pubKey), PKCS1); // 按理来说不能多次使用 } catch (Exception e) { rw.setStatus(500); rw.getWriter().write('RSA密钥错误'); return; } r.parseForm(); String keybase64 = r.getForm().get('aesKey'); // byte[] body = r.getBody().getBytes(); byte[] keyDecrypted; try { keyDecrypted = cr.decrypt(base64Decode(keybase64)); } catch (Exception e) { rw.setStatus(500); rw.getWriter().write('AES密钥解密失败'); return; } String id = UUID.randomUUID().toString(); try { a.getClient().insert(new dao.AesId('gateway:clientAESKey:' + id, new String(keyDecrypted), System.currentTimeMillis() / 1000)); } catch (Exception e) { log.withoutContext().error(e); } // jedis.set('gateway:clientAESKey:' + id, keyDecrypted, 'EX', 3600 * 24 * 30); rw.setHeader('Content-Type', 'application/json'); rw.getWriter().write(JsonUtil.toJsonString(new RespBody(200, id))); return; }
原文地址: https://www.cveoy.top/t/topic/phaw 著作权归作者所有。请勿转载和采集!