首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

接口API的敏感数据基于AES进行安全加密后返回

许久没有写博客了,有些惶恐地打开这个再熟悉不过的编辑器。...场景:要对一个涉及到敏感数据(账号、密码)的接口进行加密后返回 由于之前没有相关的经验,所以先在网上搜罗了一阵,这篇博客不错https://www.cnblogs.com/codeon/p/6123863...Base64编码,看名字就可以知道这是一种编码方式,编码方式有很多ASCII、Unicode、UTF-8等,Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加为原来的4/3。...MD5摘要算法,这是一种散列函数,提取数据的特征,输出是不可逆的散列值,用于代表某信息A而又不暴露信息A的内容,一般用于数字签名场景。...加密方式的确定:最后我的接口中的敏感明文信息通过AES进行加密,最后将密文返回给客户端。

90610
您找到你想要的搜索结果了吗?
是的
没有找到

用SCF云函数输出gzipdeflate压缩过的数据,以及API网关的Bug

Access-Control-Allow-Origin:':'*', }, "body": res }; }};需要做的主要就是把要返回数据用...zlib给压缩一下,然后用base64编码,最后通过集成响应方式吧编码数据输出给api网关。...网关配置,在基础配置不知道什么时候出现了“响应压缩”选项,还是默认选中的。...2 响应压缩声称对1k以内的内容不压缩,实际上对于非集成响应的SCF也没有兑现。3 不管是否使用集成响应api网关都不能正确吐出content-length头部了。...绕过这些bug的一个恶心的方式是scf总是压缩数据后输出,让api网关总是忽略相应压缩直接把压缩好的数据送出,此时cos会保存下来压缩过的文件,因此使用数据的程序需要自行解压数据

892101

RESTful API设计--指南

POST — 创建资源,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体。POST 请求可能会导致新的资源的建立和/或已有资源的修改。...保持向后兼容性总是一个很好的做法,这样如果你改变 API 版本,消费者就有足够的时间进入下一个版本。...使用分页 当您公开可能返回大量数据API 时,必须使用分页,如果没有进行适当的负载平衡,消费者可能最终会关闭服务。我们需要始终记住,API 设计应该是完整的证明和傻瓜证明。...支持的格式 选择 API响应方式也很重要。大多数现代应用程序都应该返回 JSON 响应,除非你有一个仍然需要获得 XML 响应的遗留应用程序。...使用正确的错误信息 保持应用程序发送的一组错误消息并以正确的 id 对其做出响应总是一个很好的做法。

1.8K50

Fetch:新一代Ajax API

Fetch API,W3C的正式标准,是XMLHttpRequest的最新替代技术: 基于 Promise 设计 语义化API(Header、Request、Response) 良好的数据转换接口(text...()、json()) React技术栈的一员.....Cookie; response常用方法说明: status: 响应状态码(例如:200,成功); statusText: 与状态码一致的状态信息; ok:表示响应成功(200~299)还是失败; headers...: 响应的Headers对象; bodyUsed: 标识response是否已经被读取过; 注:Fecth API为保持对未来“流”API的支持, 限制response只能被读取一次;...json(): 返回被解析为JSON格式的Promise对象; text(): 返回被解析为String格式的Promise对象; Headers常用方法说明: append(name,value) delete

71330

用 WebFlux 写个 CURD 是什么体验?

WebFlux 最为人所诟病的是数据库的支持问题,毕竟数据是一个应用的生命,我们接触的大部分应用程序都是有数据库的,而 WebFlux 在这一方面的支持行一直比较弱,这也是大家总是吐槽它的原因。...Spring 官方在 Spring5 发布了响应式 Web 框架 Spring WebFlux 之后急需能够满足异步响应数据库交互 API,不过由于缺乏标准和驱动,Pivotal 团队开始自己研究响应式关系型数据库连接...Flux,里边包含多个对象,还有一个我设置了响应的 Content-Type 为 text/event-stream,通过响应式流返回数据,具体参见【服务端推送数据,除了 WebSocket 你还能想到啥...,然后调用 flatMap,在 flatMap 数据进行删除处理,删除完成后,给出一个 200响应码,如果查询的时候没有查询到数据,就给一个 404 响应码。...可以看到,删除成功后,响应码为 200: ? 删除失败后,响应码为 404: ?

2.5K50

REST API 设计最佳实践:如何构建、设计和使用 API

不要返回纯文本 尽管并非强制规定的,但大多数REST API通常约定使用JSON作为数据格式。然而,仅返回包含JSON格式字符串的响应体是不够好的。您还应该指定Content-Type标头。...在响应返回错误详情 当API服务器处理错误时,将错误详细信息包含在JSON主体可以帮助使用者进行调试,这是是非常方便的,如果您还能说明哪些字段受到了错误的影响,那就更好了!...特别关注 HTTP 状态码 这一点非常重要,如果你从这篇文章只记住一件事,那可能就是它了。 你的API最糟糕的事情莫过于返回一个带有200 OK状态码的错误响应。...曾经我不得不集成一个API,它对每个响应返回200 OK,并通过status字段来表示请求是否成功: { "status": "success", "data": {} } 尽管HTTP...状态码返回200 OK,但我不能完全确定它有没有处理我的请求失败。

35040

13 个设计 REST API 的最佳实践

不要返回纯文本 虽然返回 JSON 数据格式的数据不是 REST 架构规范强制限定的,但大多 REST API 都遵循这条准则。...在响应返回错误详情 当 API 服务器处理错误时,如果能够在返回的 JSON body 包含错误信息,对于接口调用者来说,会一定程度上帮助他们完成调试。...你可能知道,HTTP 你可以返回带有 200 状态码的错误响应,但这是十分糟糕的。不要这么做,你应当返回返回错误类型相一致的具有一定含义的状态码。...当然可以,不过让我讲一个故事: 我曾经使用过一个 API,对于它返回的所有响应的状态码均是 200 OK,同时通过响应数据的 status 字段来表示当前的请求是否成功,比如: {..."status": "success", "data": {} } 所以,虽然状态码是 200 OK,但我却不能绝对确定请求是否成功,事实上,当错误发生时,这个 API 会按如下代码片段返回响应

3.5K20

Jira API的踩坑记

在我之前的工作经历,很少注意到http响应状态码这个数据。...因为大多数情况都是成功的话,返回200,不成功的话也是返回200(通过业务状态码来区分不同原因), 只有在接口请求失败,或者说服务器故障的时候会处理一下400和500系列的响应状态码。...在对接Jira API文档的过程,我遇到了很多种之前没有接触过的200系列的http协议响应状态码。Jira API 是通过http,响应状态码来表示业务处理状态,他并没有使用业务状态码。...所以,在对接的过程,需要单独处理每个接口的http响应状态码。 在POST和PUT全球方法的接口, 很少能看到200的状态响应码。下面分享一下,我常见到的201和204状态响应码的标准规范。...一直以来的概念就是获取数据用get,修改数据用post。但是在接触Jira API文档的过程,我仔细地看了看post和PUT的区别。

1.3K20

Axios使用方法-实现前后端交互

什么是Axios Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js)。...Axios文档地址:https://www.axios-http.cn/ 特性: 从浏览器创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应...转换请求和响应数据 取消请求 自动转换JSON数据 客户端支持防御XSRF 使用方式 Axios引入 外部引入cdn,以下两种方式任选一种即可。...{ // `data` 由服务器提供的响应 data: {}, // `status` 来自服务器响应的 HTTP 状态码 status: 200, // `statusText...调用 axios 方法得到的返回值是 Promise 对象 axios({ // 请求方式 method: 'GET', // 请求的地址 url: '接口地址

1.5K40

Python Web框架Tornado

需要特别注意的是,由于Python的GIL导致多线程总是单核执行的”特点”,tornado处理http请求时,若某个请求的后端响应有阻塞现象(如从DB或磁盘读数据导致处理时间很长),则会导致其他http...,没有多大的实战意义。...city=xxx 根据上面的场景,由于我们用tornado实现的web server接到client的请求后,还要去另一个API接口请求基础数据,而后者在返回前,tornado会block,所以,这种场景下...,tornado最好以异步方式请求那个提供基础数据API,避免不可控的后端拖累tornado的响应性能。...,进程控制权会返给主线程, 故即使该函数需要较长运行时间,tornado的主线程也可以继续处理其它请求 在Python 2.x版本的语法,generator不允许用return返回函数的返回值, 必须用

1.4K10

BaaS API 设计规范

通用输出数据 对于 CDU 以及修改数据为主的操作型API响应,都必须返回一个统一的数据格式 Result,该结构定义如下: { success: boolean, statusCode: int,...message:总是返回一个可用于客户端显示的字符串。该属性用于显示给软件使用者查看。 data是可选属性。即如果没有额外的数据,可以没有data属性,也可以data 返回 null。 2.2.4....对于 HTTP 状态码而言,所有API暂时只使用以下状态码: · 200:操作成功返回。 · 201:表示创建成功,POST 添加数据成功后必须返回此状态码。 · 400:请求格式不对。...异常处理 请求失败返回 4XX 后,响应的主体依然是 Result 数据格式。其中 message 表示错误的信息。方便进行调试。...其它 时间的格式:API返回的时间,都统一采用UTC格式 时间。 API返回,如果需要包含调试相关信息(如调用时间、调用次数等),由BAAS平台框架统一处理,不单独在各API处理。

3.1K111

(译) 理解 Prometheus 的范围向量 (Range Vector)

在下面的响应,我们可以看到在时间戳 1608481001 处记录的单个值。...如果没有称为 “range” 的指定持续时间,则这些值不能存在,该持续时间用于构建每个时间戳的值列表。 在下面的示例,请注意带有时间戳的值列表,从 1608481001 到过去最多 30s。...为了绘制指标(metric)图表,对于在时间序列显示单个时间戳的多个数据点是没有被定义的。 Instant vectors 可以进行比较和运算; Range vectors 不能。..., "881"] } 但从响应可以看到,这样做会得到我们不感兴趣的请求的总数,我们关注的是它在过去的有限时间内收到的请求的数量(上面表示的是过去所有时间的请求总量),例如,最近十五分钟。...increase 实际上也可以进行外推,因为所请求的持续时间可能没有在范围(range)的“开始”和“结束”处精确对齐的数据点。

42220

JavaScript异步编程2——结合XMLHttpRequest使用Promise

调用function A,返回一个Promise对象,这样异步操作就启动了。 调用Promise对象的then方法,参数是resolve和reject的真正响应函数。...当异步操作完成了,就会执行相应分支的响应函数。 采用以上范式,可以通过Promise来进行Ajax操作,也就是XMLHttpRequest,毕竟这个操作在Web应用实在太常见了。 2....) { //完成许诺,返回响应文本 resolve(req.response); } else {...不能完全这么肯定,但是可以确定的是事件并不总是异步编程的最优实践。...例如这里的XMLHttpRequest操作,事件响应函数onload的所有行为,并不都是异步请求成功时需要完成的,只有检测访问请求状态为200时候,才需要进行请求成功时的回调函数。

97010

flask 应用程序编程接口(API)最后一节

jsonify()函数返回一个默认状态码为200的瓶Response对象,因此在创建响应之后,我将状态码设置为对应的错误代码。 API返回的最常见错误将是代码400,代表了“错误的请求”。...如果在请求没有找到JSON数据,该方法返回None,那么我可以使用表达式request.get_json() or {}确保我总是可以获得一个字典。...该请求的响应转换更新后的用户表示返回给用户,并使用最小的200状态代码。...API没有HTML或登录页面的概念,如果客户端发送带有无效或所有权凭证的请求,服务器必须拒绝请求并返回401状态码。...使用撤销了User类的辅助方法,该方法重新设置令牌过期日期来实现还原操作。之后提交数据库会话,以确保将更改写入数据库。这个请求的响应没有正文,所以我可以返回一个空字符串。

5K10
领券