java – Android应用程序中的秘密密钥的反黑客解决方案?

我需要在应用程序中存储一个私人字符串键.它的值永远不会改变,并且在代码中手动设置.我不能明显地将它存储为String,因为逆向工程方法显示它,即使使用混淆.

你如何建议我保护这个私钥?

我虽然将其保存到数据库中,但是数据库也可以从手机中拔出.

PS.这个关键是一个特殊的参数,所以一个重要的方法,它至关重要的是任何人都不知道的!这不是解密密钥.该字符串将用作加密方法(md5或类似的)的参数,然后将结果发送到我们的Internet服务.

编辑

对不起,让它变得如此复杂我以为我可以尽可能少的信息得到一个答案.

该应用程序将允许用户将一些文本发送到Internet服务,然后将该文本发布到网站.我们需要确保通过Android手机发送文本,因为任何Web机器人脚本都可以模仿Android手机并发布垃圾邮件.由于在手机上不受欢迎的验证码方法,将会有一个秘密密钥,通过md5(还有一些其他东西)来生成哈希码.这个哈希将被发送到Internet服务.互联网服务将使用相同的密钥来获取md5结果,然后比较它来查看发件人是手机还是一些机器人.

这是我最多允许说的.我希望足够了

解决方法

我建议你重新考虑你的安全架构.应用程序随附的任何东西都是可以发现的. (例如,Android的许可证验证库设计为使公钥随应用程序一起提供.)

一种可能性是应用程序从服务器检索密钥(通过安全套接字或https连接).这显然会要求应用程序向服务器提交某种识别/验证(可能基于用户输入).

如果您正在使用密钥进行加密,那么再来看一下公钥加密应该如何运作.你的应用程序应该有公钥;互联网服务然后可以使用匹配的私钥进行解密.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...