san*_*one 9 java android reverse-engineering secret-key
我需要在应用程序内部存储一个私有字符串键.它的值永远不会改变,并在代码中手动设置.我显然无法将其存储String为反向工程方法将其显示出来,即使应用了混淆.
你怎么建议我保护这个私钥?
我将它保存到数据库中,但也可以从电话中取出数据库.
PS.这个键是一个特殊的参数,所以这是一个重要的方法,它至关重要,任何人都不知道!这不是解密密钥.此字符串将用作加密方法(md5或类似)的参数,然后结果将发送到我们的Internet服务.
编辑
对不起,因为它太复杂了.我想我可以用尽可能少的信息得到答案.
此应用程序将允许用户将一些文本发送到Internet服务,然后将该文本发布到网站.我们需要确保文本是通过Android手机发送的,因为任何网络机器人脚本都可以模仿Android手机并发布垃圾邮件.由于类似验证码的方法在手机上不受欢迎,因此会有一个密钥通过md5(带有其他一些东西)来生成哈希码.此哈希将发送到Internet服务.Internet服务将使用相同的密钥获取md5结果,然后将其进行比较以查看发件人是移动电话还是某个机器人.
这实际上是我可以说的最大值.我希望这就够了.
Ted*_*opp 11
我建议您重新考虑您的安全架构.随应用程序一起提供的任何内容都是可发现的.(例如,Android的许可证验证库的设计使得应用程序附带了一个公钥.)
一种可能性是应用程序从服务器(通过安全套接字或https连接)检索密钥.这显然需要应用程序向服务器提交某种标识/验证(可能基于用户输入).
如果您使用密钥进行加密,那么请再看看公钥加密应该如何工作.您的应用程序应该有公共密钥; 然后,互联网服务可以使用匹配的私钥进行解密.
| 归档时间: |
|
| 查看次数: |
4690 次 |
| 最近记录: |