我需要在应用程序内存储一个私有字符串密钥。它的值永远不会改变,并且是手动在代码中设置的。显然,我不能将其存储为
你建议如何保护这个私有密钥?
我考虑将它保存到数据库中,但数据库也可以从手机中提取出来。
PS. 这个密钥是一个特殊参数,是一个重要方法的关键,它对任何人都必须保密!它不是解密密钥。这个字符串将被用作加密方法(md5或类似方法)的参数,然后将结果发送到我们的互联网服务。
编辑
抱歉,让问题变得如此复杂。我认为我可以尽可能少地提供信息得到答案。
这个应用程序将允许用户向互联网服务发送一些文本,然后该文本将被发布到网站上。我们需要确保文本通过Android手机发送,因为任何网络机器人脚本都可以模仿Android手机并发布垃圾邮件。由于移动电话不支持类似验证码的方法,因此将使用一个秘密密钥,将其通过md5(以及其他一些内容)进行处理以生成哈希码。这个哈希码将被发送到一个互联网服务。该互联网服务将使用相同的密钥获取md5结果,然后进行比较以确定发送者是移动电话还是机器人。
这真的是我可以说的最多的了。我希望这足够了解。
String
,因为即使应用混淆后,反向工程方法也能够揭示它。你建议如何保护这个私有密钥?
我考虑将它保存到数据库中,但数据库也可以从手机中提取出来。
PS. 这个密钥是一个特殊参数,是一个重要方法的关键,它对任何人都必须保密!它不是解密密钥。这个字符串将被用作加密方法(md5或类似方法)的参数,然后将结果发送到我们的互联网服务。
编辑
抱歉,让问题变得如此复杂。我认为我可以尽可能少地提供信息得到答案。
这个应用程序将允许用户向互联网服务发送一些文本,然后该文本将被发布到网站上。我们需要确保文本通过Android手机发送,因为任何网络机器人脚本都可以模仿Android手机并发布垃圾邮件。由于移动电话不支持类似验证码的方法,因此将使用一个秘密密钥,将其通过md5(以及其他一些内容)进行处理以生成哈希码。这个哈希码将被发送到一个互联网服务。该互联网服务将使用相同的密钥获取md5结果,然后进行比较以确定发送者是移动电话还是机器人。
这真的是我可以说的最多的了。我希望这足够了解。