适用于Android许可的AESObfuscator
作者:互联网
我在ServerManagedPolicy中使用AESObfuscator进行Android许可.到现在为止,我已经创建了这样的deviceId:
String deviceId = Secure.getString( getContentResolver(), Secure.ANDROID_ID );
在互联网上的所有示例中都是这样做的,但有时会说它不是很安全,但没有描述其他方式.我已经读过ANDROID_ID可以很容易地改变,甚至可以为null,所以我真的想要另一种方法来获得一个唯一的id.
对于已经购买我的应用程序的人来说,许可证失败不止一次,而且我很确定它与此有关,否则它只会是谷歌的一个问题,我真的怀疑.
那我该怎么做呢?只需创建一个随机哈希并将其添加到deviceId(当然将其存储在某处……?)
解决方法:
“安全”是什么意思?这只是模糊了你的偏好,使得在root设备上编辑变得更加困难.如果您重置设备(删除所有数据),或者有人在有根设备上编辑它,ANDROID_ID可能会更改.第一种情况并不是真正的问题,在第二种情况下,您将无法解密(去混淆)存储的首选项,因此您只需将其视为错误.如果它确实为null,您应该考虑某种回退值.
这里的要点不是拥有唯一的ID,而是使用某些特定于设备的数据来混淆首选项,这样您就不能将它们复制到另一个设备.您可以使用IMEI的散列,WiFi适配器MAC地址或任何其他特定设备,但您必须处理特定属性不可用的情况(例如,仅限WiFi的平板电脑没有IMEI等. )
使用错误报告库(如ACRA或BugSense)来跟踪实际错误并了解许可失败背后的真正原因.有时这是Google基础架构的错误,因此您应该尝试处理此问题(缓存许可状态等)
标签:android,android-lvl 来源: https://codeday.me/bug/20190530/1182919.html