使用IOS上的密钥加密json数据,并使用节点js对其进行解密

时间:2015-07-02 07:11:02

标签: ios json node.js encryption jwt

我需要在发布和发出请求时保护我的CSR for CSR。

为此,我认为移动设备(例如iOS)需要向API服务器(node.js)发送令牌。此令牌必须加密并包含将在服务器端解密的JSON数据。

要解密数据,移动设备使用服务器知道的相同密钥。

例如:{_csrf: 123456789}将通过移动设备发送的令牌解密,并在API匹配时进行检查。

  1. 这是正确的方法吗?如果不是正确的方式?

  2. 如何在iOS上加密Jon数据并在node.js上解密? (JWT Token没有iOS库)

  3. 你能给我一个示例代码来加密iOS和解密在node.js上的数据吗?

2 个答案:

答案 0 :(得分:0)

只需使用https,即可加密所有内容,甚至任何查询字符串。

使用随机对称密钥对内容进行加密,并使用证书中的非对称密钥对密钥进行加密。此外,对称密钥的寿命很短。此外,您不必使用实现和加密例程。

另请注意,默认情况下iOS9将要求https用于所有连接,任何http连接都需要在plist中列入白名单。

如果您进行自己的加密,则在设备和服务器之间共享加密密钥时会立即遇到问题。这不是一个容易解决的问题。

答案 1 :(得分:0)

从浏览器页面访问API时,为了防止CSRF,您可以在HTTP标头中发送令牌,例如X-CSRF-Token,或者使用cookie。

例如,让您的服务器使用X-CSRF-Token标头在HTTP响应中发送CSRF令牌。您可以让您的页面在POST或PUT上以JSON格式发送回来。或者让您的页面从cookie中读取它并将其放入JSON中。

(来自浏览器的HTTPS 防止CSRF,因为相同浏览器中运行的任何其他网站上的任何脚本都可以POST到您的HTTPS服务器是免费的。您的页面需要有一个令牌,而同一浏览器中的其他页面都无法访问。)