【问题标题】:Android : What kind of encryption do I choose to send my data safely to an app using WCF?Android:我选择哪种加密方式将我的数据安全地发送到使用 WCF 的应用程序?
【发布时间】:2012-07-05 16:51:03
【问题描述】:

我有一个项目,我需要将 Android 应用程序连接到使用 WCF、IIS(Internet 信息服务)、Active Directory 和基于角色的 Scurity 的 ERP。

因此默认情况下已经包含很多安全选项,例如允许使用证书和 HTTPS 等的 basicHttpBinding。

我还没有决定的一件事是,当数据从应用程序传输到 ERP 时,我将使用什么数据加密来保护数据的安全。我读到有一个可以使用的 Java AES 库,然后我又读到有人也可以解密这些包,如果他或她拦截它们。

我想知道两件事:

  • 是否有关于移动应用程序数据加密的“最佳实践”,因为计算能力不如计算机,而且消息不能太重或太长而无法解密,因为这会减慢我们当然不想要的应用程序。

  • 我实际上在考虑使用某种 PGP 公钥,其中公钥在 Android 设备中,而私钥在 ERP 中,但这可能不是一种聪明甚至不是非常安全的方法是吗?

再说一遍.. 因为我将使用 TLS,也许我不需要加密我的数据并且它足够安全?

提前致谢!

【问题讨论】:

    标签: java android wcf encryption aes


    【解决方案1】:

    android 的安全协议非常严格。

    你可以做的是使用这个函数并找到你想要使用的协议:

    Provider[] providers = Security.getProviders();
    for (Provider provider : providers) {
        for (Object entry : provider.keySet()) {
            String name = String.valueOf(entry);
            if (name.startsWith("Cipher")) {
                Log.d("Cipher", "Supports: " + name.substring(7));
            }
        }
    }
    

    其中任何一个都是标准协议,可以在客户端和服务器端使用。

    祝你好运。

    【讨论】:

    • 嗨!感谢该代码,我设法得到了那长长的列表。有很多基于密码的加密以及不同种类的 AES 和 DES。不过,既然我知道我的选择是什么,并且我对如何整合它们有了更好的了解,我想知道哪一个最适合我?我应该只使用 AES、基于密码的 AES 或 TRIPLE DES 或 RC4 加密还是使用 OPENSSSL 和 26BIT AES...
    • 请注意,该应用不会被成千上万的用户使用,并且数据并不重要,但必须实现最低限度的安全性。
    • 您必须考虑服务器对发送到设备的每个数据包进行解密和加密所需的时间。我想说,如果您正在寻找最低限度的安全性,请使用简单的 128 位 AES 并通过 https 发送数据
    • 非常感谢!那我就这么做:)
    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2013-08-11
    • 2010-12-06
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多