Android - 加密和解密

时间:2011-04-21 05:41:52

标签: android encryption

我正在通过HTTP连接下载XML文件,现在我需要在我的FTP和befaore下载中加密XML我将在任何其他使用之前检查XML签名(或解密)。我有我的应用程序签名(976个字母和数字的组合),我不知道,我可以使用我的签名字符串来验证我的XML吗?或私人/公钥解决方案?但是如何创建密钥以及如何将它们存储在APK中?

由于

2 个答案:

答案 0 :(得分:0)

最好的方法是使用非对称密钥对(RSA是最常见的),您在FTP站点上签署数据,在Android设备上保留私钥,呃,私钥和公钥。您可以使用另一个密钥对进行加密/解密。您可以使用您的签名字符串作为Android设备上的私人解密密钥的密码。确保您的应用程序不容易受到填充oracle攻击(加密,然后在解密失败时签名或不通知对方)。

请注意,实现您自己的XML签名/验证或XML加密/解密版本可能非常困难(并且充满了至少与使用XML安全相关的库匹配的陷阱)。我建议尝试将XML包装在CMS容器中。

对于其他用户,指向您的后续问题的链接: Android - verify the signature of XML

答案 1 :(得分:0)

猫头鹰是对的,试图重新发明轮子不是最佳选择。另一方面,如果你真的想要实现它,或者学习如何去做,那么签署和验证XML文件的内部是微不足道的。首先,生成RSA公钥/私钥对。然后,您获取XML文件的哈希值并使用RSA密钥加密哈希值,并将加密数据与XMl文件一起发送,现在可以对XML文件进行签名。要验证文件,只需获取XML文件的哈希值并将其与加密哈希值进行比较(解密后),看它们是否匹配。如果是这样的话,文件一直没有调整过。