我使用了惊人的FPS,我必须将密钥存储在java代码中。不过,我担心有人会反编译我的apk并找到密钥。我自己反编译apk,找不到密钥,但我不是VM专家。任何帮助?Android存储密钥,反编译恐惧
回答
你不能把你的加密密钥为您的应用程序,并期望它仍然是一个秘密。它只需要一名坚定的程序员反编译并找到密钥,并且可以与世界共享。
非对称/公钥密码学正是您想要的解决方案。创建一个公钥/私钥对,然后将公钥放在您的应用程序中并自己保留私钥。然后,你可以做两件事情:
- 应用程序可以加密使用公共密钥,只能使用私钥解密的消息。
- 或者,您可以签署使用私有密钥,可以使用在应用程序中的公共密钥进行验证的消息。
是真的。但如果您将私钥或公钥放在应用程序中,他们也可以使用该密钥来解密密钥。 – 2011-03-09 00:17:12
@Patrick Boos:这就是非对称加密的一点:你不能从公钥计算私钥。这种方式的工作原理是,使用私钥(您不与任何人共享,只在服务器上共享)在服务器上加密*,并且客户端上的应用程序具有* public *键可以解密;此外,客户端上的应用程序使用* public *键签名,服务器使用私钥进行验证。 *公共*密钥旨在自由分享。 – Piskvor 2011-04-26 11:23:35
@Piskvor为了成为安全的公钥密码学,要求私钥保密。但是如果某人获得了存储在应用程序中的私钥(例如,通过反编译)呢?然后,他或她仍然可以读取使用公钥编码的所有秘密数据(与原始应用程序完全相同)。有没有办法来防止这种情况? – Piotr 2011-04-29 21:40:02
一个确定足够的个人将能够提取您的密钥,是不是真的有可以为此做些那么多。您可以尝试以某种方式混淆密钥(提高酒吧如何确定他们的需要),但是无法阻止他们获得密钥。
但是,根据为什么你需要存储的密钥,你可能能够使用Asymmetric Key Cryptography。您将能够存储可能仅限于加密(而非解密)或认证目的的公钥,同时能够保护私钥安全。
公钥仅用于加密和签名验证。 – 2010-01-03 05:21:15
- 1. 对DataBinding的恐惧
- 2. Android的密钥存储提供商 - 如何存储密钥
- 3. Android密钥存储文件
- 4. 在Android上存储密钥
- 5. 存储密钥
- 6. 如何打败外包恐惧?
- 7. 解密存储Java密钥存储
- 8. 如何使用Android密钥存储提供程序存储密钥
- 9. ECDSA密钥存储
- 10. 存储AES密钥
- 11. 如何保护解密密钥免遭反编译?
- 12. Xamarin/Android和恐惧蓝牙LE错误133(GATT_ERROR)
- 13. 在android中存储RSA密钥对
- 14. 在Android中存储会话密钥
- 15. Android的安全存储密钥
- 16. 存储API密钥5
- 17. AWS密钥对存储
- 18. wso2密钥存储问题
- 19. 对称密钥存储
- 20. 存储Kerberos会话密钥
- 21. 上传私钥到rundeck密钥存储
- 22. 如何保护Flex/AIR中的API密钥免于反编译?
- 23. oracle存储过程加密密钥
- 24. AES加密和密钥存储?
- 25. 如何在android中安全地存储加密密钥?
- 26. Android Facebook SDK密钥存储区未询问或输入密码
- 27. 使用密钥()ID()在GAE数据存储和。反向地理编码
- 28. Android-在编译时存储大文件
- 29. android无效密钥哈希。密钥哈希不匹配任何存储的密钥哈希
- 30. 从反编译和开发人员中将密钥保存到Android应用程序
你不能“真正”防止有人反编译的程序。您的安全模型最好考虑到这一点。 :-) – 2010-01-03 04:40:51
如果我从网络服务器(密钥)加载它,我如何确保请求不能被其他人制作(假设反编译) – 2010-01-03 04:48:08
http://en.wikipedia.org/wiki/Public-key_cryptography可能对验证请求很有用。 – 2010-01-03 04:52:23