android - 如何使用公共(public)加密来管理 Android 应用程序的许可?

标签 android encryption license-key

我不想在 Android Market 上发布我的应用程序,但我会根据用户设备的 MAC 地址从我的网站创建一个许可证 key 。它还应包括到期日期。 一旦用户在 android 设备中输入代码,它就应该被识别。 我读过它可以通过使用自定义公共(public)加密来完成。在这种情况下我应该实现:

  1. 我的应用程序中的一个函数,它获取 设备并向用户显示一个字符串。
  2. 我网站上的一个函数,它拥有私钥并在第 1 点加密字符串并添加到期日期
  3. 我的应用程序中的一个函数,它使用公钥解密第 2 点的字符串并验证许可证 key 。

我已经阅读了很多关于 stackoverflow 和其他网站的讨论,但没有任何适用的......或者不清楚如何在我的场景中应用:(

你能给我提供解决这个问题的方法吗?是否有我遗漏的 Android 原生内容(我希望如此)?

非常感谢! 马可

最佳答案

我认为实现您的 Intent 没有什么困难:

  1. 您的许可服务器必须有自己的私钥和公钥对。
  2. 然后您必须在第一次运行/安装期间在您的应用程序中创建私钥。它可以随机完成
  3. 然后您必须使用公钥在您的应用程序和服务器之间进行交换
  4. 在购买/许可过程中,您的应用程序应加密 MAC 地址或其他(gmail id、IMEI 代码等)发送到服务器 - 服务器存储 key
  5. 为了检查许可申请的有效性,向服务器发送 MAC 密码 - 服务器检查它是否存储在数据库中

如果您不知道如何实现私钥/公钥之类的东西 - 请阅读手册,Diffie-Hellman 有很多实现方式的程序 - 很简单,没有什么特别之处

关于android - 如何使用公共(public)加密来管理 Android 应用程序的许可?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7722841/

相关文章:

java - 为java项目生成许可证 key

Android 应用唯一许可 key

asp.net - 当我使用单声道创建网站/网络应用程序时,是否需要购买许可证?

math - 计算加密数据的最大大小

javascript - 华硕 zenfone 5 t00j AES 256 加密问题

java - 使用 RSA 公钥加密 DSA 私钥

java - 解密在 Android 设备上加密的字符串

android - 第一次检测后停止移动视觉 API

java - System.getProperty(param) 返回错误值 - Android

android - google api客户端已连接返回false