2017-10-11 62 views
0

我想創建一個.net dll文件,其中將包含很少的方法。只有通過將密碼傳遞給方法才能訪問這些方法。如何將密碼存儲在dll文件中?如何用.net dll文件中的密碼保護方法?

+5

這是什麼目標?大多數(所有?)解決方案對於任何人來說都是輕而易舉的,因爲反編譯器一應俱全。 – Joey

+0

當我們給任何客戶的DLL,基於許可證將給密碼的方法。這些方法只有他們可以使用它的應用程序。 –

+2

如果你有公司客戶,你有合法的方法來確保未經授權的使用受到懲罰。除此之外,您可以使用[.NET的許可機制](https://www.developer.com/net/csharp/article.php/3074001)爲您的庫取代使用密碼。這仍然存在如何確保客戶擁有無效許可證時圖書館不能工作的問題。它仍然是可以修補的,所以你必須在代碼中隱藏killswitches時有所創意。但是沒有絕對的安全性,有人決定可以在任何情況下從庫中補充許可證檢查。 – Joey

回答

0

如果你有固定的密碼,然後你可以有一個readonly屬性初始化與類

+0

你的意思是說像這個例子..例如。 私有隻讀字符串密碼; public testLibClass() { password =「1234」; (int a,int b,string pwd) { int result = 0; if(password == pwd) { result = a + b; } else { result = 0; } 返回結果; } –

+1

是的,確切地說。 ! –

1

存儲像DLL密碼令牌的構造硬編碼的值是不是一個好的做法。但是,如果有要求,您仍然可以執行以下操作。

在您的類庫中創建一個全局變量並使用您的密碼值進行初始化。說

string pwd="secret_code"; 

比定義一個字符串類型參數的函數作爲參數

你可以簡單的檢查,通過用戶在函數調用時傳遞的密碼與整體匹配函數體內的一個或不。

如果匹配,則繼續執行else break;

function demo(string password) 
{ 
if(password==pwd) 
//continue 
//break; 
}; 

demo("secret_code"); 

問任何疑問請。

+0

我們還可以使用Encryption Technic以加密格式存儲密碼? –

+1

@PraveenKumar - 你在這裏一無所知。一旦你加密了你的密碼,你在哪裏/如何存儲加密密鑰?你沒有看到你用一個問題替換了一個問題......完全一樣的問題。 –

+3

@PraveenKumar這是您可以絕對實現的附加功能。以上答案僅針對您的問題。順便說一下,加密確實是最好的選擇。 –