如何在Ruby和Android应用程序之间加密和解密数据?

时间:2013-03-02 20:08:49

标签: android ruby-on-rails cryptography client-server

我一直在开发使用Ruby on Rails的Web服务器应用程序和使用Android的客户端。 Web服务器有一些到客户端访问的路由,没有身份验证。我想创建一个令牌来验证请求是否来自客户端。我想像这样的解决方案:

  1. 创建一个密钥,例如“stackoverflow;
  2. 在客户端和服务器应用程序中共享此密钥;
  3. 使用AES加密生成令牌,生成随机字符串函数+键;
  4. 当客户端应用程序向服务器发送请求时,也发送生成的令牌;
  5. 服务器使用共享密钥和AES加密验证令牌是否有效。
  6. 以下是我的疑惑:

    1. 这是发展他们之间沟通的最佳方式吗?
    2. 是否有gem / api crypt并解密才能在两个系统中使用?
    3. 请不要犹豫,描述一个建议或示例来指导我=)

      提前致谢

1 个答案:

答案 0 :(得分:2)

更安全和标准的方法是使用SSL客户端证书。

为每个新版本的应用颁发客户端证书,确保使用仅由您或您的签名CA拥有私钥的证书(即CA证书)进行签名。

在允许连接之前,将Web服务器设置为需要客户端证书。设置Web服务器以再次验证您持有的CA证书的证书。

这样就没有可以从您的应用中提取的“共享秘密”。如果有人提取并窃取客户端证书,请使用新证书发布应用程序的更新版本,然后将旧证书添加到CA的撤销列表中,或者只是告诉Web服务器阻止该特定证书。

没有要编写的ruby,java或javascript代码。