今天有一個網友說他寫了一個小軟件,想增加注冊碼功能。問我有什么思路。
我想了一下,說可以做在注冊表里面,找個位置保存注冊情況。
程序檢查到沒注冊時就不工作,要求用戶輸入密碼(注冊碼)。
他不太認可,擔心用戶跟蹤到注冊表里面的記錄,直接修改注冊表跳過。
然后我又建議他每次程序啟動時聯網檢查用戶注冊情況,他又否定了,說用戶不一定聯網。
我又建議他把注冊信息寫在特殊的u盤,用戶注冊了后發個u盤給他,程序要讀到這個u盤才可以工作。
他又否定了,說用戶可能是在購買的雲服務器上跑,沒法插u盤。
后來我在百度上找了一個,給了最后一個方案,他終於認可了:
使用rsa加密方法,將用戶信息使用公鑰進行加密。用戶要注冊時需要把加密結果發給他。
他用私鑰解開后,可以住里面增加有效期,注冊功能等信息,再用私鑰加密。把加密結果做為注冊碼發回給用戶,保存起來。
程序每次啟動時要讀取這個注冊碼,用公鑰解開,獲取里面的注冊信息。
rsa真是一個有趣的技術,不僅可以用來做加密,還能用來做簽名,還可以像現在這樣用來做注冊碼