2011-10-11 47 views
2

我不想在Android Market上發佈我的應用程序,但我會根據用戶設備的MAC地址從我的網站創建許可密鑰。它還應該包括到期日期。 一旦用戶在Android設備中輸入代碼,它應該被識別。 我讀過它可以通過使用自定義公共加密完成。在這種情況下我應該實現:如何使用公共加密來管理android應用程序的許可?

  1. 在我的應用程序的函數,是以 設備的MAC地址,並顯示一個字符串給用戶。
  2. 我的網站上的一個功能,擁有私鑰和密碼字符串在第1點,並添加到期日期
  3. 我的應用程序中的一個函數,解密字符串在點2.使用puplic密鑰並驗證許可證密鑰。

我讀過關於計算器和其他網站,但沒有適用的多次討論...或者並不清楚如何在我的方案:(適用

你能提供給我解決這個問題Ë方式?是有什麼說的是,我失去了Android原生(我希望)

非常感謝 馬爾科

+0

備註:如果用戶升級手機會發生什麼?將許可證密鑰綁定到mac地址可能不是最好的想法,除非您的許可證是按設備而不是按用戶。 –

+0

該應用程序是每個設備,我知道,如果用戶更改他的設備,他必須要求一個新的許可證密鑰。這是因爲我的應用程序也是有用的,可以安裝在同一用戶的許多設備上。感謝回覆。 – Vale

回答

0

我什麼也看不到真的很難實現你的意圖?!

  1. 您的授權服務器必須擁有自己的私鑰和公鑰對。
  2. 然後,您必須在第一次運行/安裝期間在您的應用程序中創建私鑰。這是可以做到只是隨機
  3. 然後,你必須與公共密鑰
  4. 你的應用和服務器之間互換在購買/許可程序應用程序應加密MAC地址或其他(Gmail的ID,IMEI代碼等等)發送到服務器 - 服務器存儲關鍵
  5. 爲了檢查許可證申請的有效性發送到MAC的服務器密碼 - 服務器檢查對照保存在數據庫

如果你不知道如何實現私有/公共密鑰的東西 - 閱讀手冊,有很多Diffie-Hellman的程序的實現 - 這很容易,沒有什麼特別的t這裏

+0

使應用程序脫機使用,因此設備和授權服務器之間的交互不受保證。根據我在我的帖子中寫的3個步驟...我應該使用哪些函數/類來加密/解密?我只根據指南創建了一個密鑰存儲庫,但我不知道如何實現該過程。我已經清楚了我的工作流程,但我不知道如何實現它。謝謝。 – Vale

+0

@Marco應用程序必須有辦法與服務器進行交換 - 無需這樣做。無論是網絡/ gprs/wifi或短信門。以下是Diffie-Hellman的示例實現http://download.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html#AppF – barmaley

+0

這就是我對工作流的想法: 1. i將公鑰和私鑰加密(使用RSA?) 2.我將嵌入公鑰的應用程序代碼 3.應用程序向用戶顯示代碼(屬於MAC並以某種方式修改) 4.用戶在我的網站上插入代碼並讀取我用私鑰加密的新許可證密鑰 5.用戶將許可證密鑰插入到應用程序中 6.應用程序使用公鑰解密許可證然後檢查它是否是應用程序在第3點向用戶提供的內容。 – Vale

0

我一直在尋找實現對未通過播放過這個分佈式來到應用許可:

https://code.google.com/p/droidactivator/

也許這會幫助你嗎?

+1

如果你在這裏提供了詳細的信息,爲什麼這對你有幫助,然後提供了鏈接細節 – Anthon

相關問題