共享軟體廣泛採用註冊碼進行授權保護。註冊碼本質上是一組與使用者特定資訊(使用者名稱、電腦硬體特徵碼等)綁定的字串。因傳輸便利、驗證簡單,成為主流授權方式,甚至 Windows XP 的產品啟用機制也採用類似邏輯。
註冊機 是產生註冊碼的程式,其演算法與受保護應用程式一致。透過相同或預先約定的計算邏輯產生註冊號,決定應用程式行為:顯示「未註冊」、限制功能、或在「關於」視窗顯示授權用戶名稱等。
最終用戶提交註冊資訊(姓名、組織名、CPU ID、硬碟序號、MAC 位址等),註冊伺服器或客服人員依此計算註冊碼回傳給用戶。為避免人工操作錯誤,現多採自動化註冊流程,但須解決用戶隱私疑慮,故提供電話、網路、平信等多種註冊管道,並公開傳輸內容。
涉及用戶身分識別的硬體資訊不宜明文傳輸,主流做法為:
需保密資訊 → 雜湊演算法編碼 → 安全傳輸 (SSL) → 伺服器
筆者經驗顯示,註冊碼計算與驗證採用不同演算法可提升安全性。但需明確:任何保護機制終究會被破解,關鍵在於讓破解成本超過軟體價值即可,無需過度複雜。
設結果 a = 0
依序取用戶名每字元 ASCII 值乘以位號累加
範例:J a s o n L i
位號:1 2 3 4 5 6 7 8
a = 'J'*1 + 'a'*2 + 's'*3 + 'o'*4 + 'n'*5 + 'L'*6 + 'i'*7 + ...
此為基礎雜湊概念,實務應用中會結合更複雜的對稱/非對稱加密、時間戳、硬體指紋等機制,構建完整授權體系。