2010-08-18 40 views
0

目前,我的朋友有一個程序,檢查用戶的Windows CD-Key,然後它通過單向加密。然後,他將這個新生成的數字添加到程序中用於檢查目的,然後編譯它,然後將它發送給客戶端。有沒有更好的方式來保持該程序不使用任何類型的登錄系統,而是使用PHP以某種方式共享,而不是使用當前的方法。我還能如何檢查用戶的程序?

回答

1

總之,任何使用密鑰的程序都可以以某種方式僞造。尤其是如果可用的資源(大多數PHP項目都是這種情況),如果你真的想要專業的東西,你可能想看看Zend Gard。)但是我認爲大多數安全系統對客戶來說都是一種痛苦。

A 不錯系統我遇到過一次是一個C編譯庫,有許多冗餘代碼檢查(意大利麪類似調用樹),並驗證加密的序列號。由於該應用程序是自定義的,並且沒有多少版本,因此沒有可用的「破解」,當轉售商破產時,客戶處於深水處境。最終,該代碼無論如何都被破解了。

在我看來,唯一真正安全的方式是託管你的應用程序並且不發佈你的任何源代碼,然後讓客戶支付一個許可證並只發送一個他必須爲每個請求發送的API密鑰。

2

幸運的是,我在這方面做了大量的研究,更實惠,有人說Zend Guard的安全選項是SourceGuardian。它允許綁定到IP地址,MAC地址,域和時間。他們還在研究支持連接到計算機的物理加密狗的版本。他們也經常發佈並擁有相當不錯的支持。

另一個經濟實惠且安全的選項是NuCoder,它們與SourceGuardian有類似的選項,但也允許選項綁定到唯一生成的硬件ID。

無論如何,SourceGuardian和NuCoder都是最好的,但無論如何NuCoder已經落後於支持最新的PHP版本。目前它們支持5.2,而SourceGuardian支持最新的,包括5.3。此外,由於您的代碼已轉換爲受保護的字節碼,因此您也可以獲得速度優勢,因爲PHP不需要額外執行將代碼轉換爲字節碼的步驟。但是,正如前面的評論者指出的那樣,這將需要你的用戶安裝必要的裝載機,但是,這通常需要在php.ini中添加一個簡單的行,或者在> 5.2.6的情況下,否則通常不需要添加。

相關問題