如何用.net dll文件中的密码保护方法?

问题描述:

我想创建一个.net dll文件,其中将包含很少的方法。只有通过将密码传递给方法才能访问这些方法。如何将密码存储在dll文件中?如何用.net dll文件中的密码保护方法?

+5

这是什么目标?大多数(所有?)解决方案对于任何人来说都是轻而易举的,因为反编译器一应俱全。 – Joey

+0

当我们给任何客户的DLL,基于许可证将给密码的方法。这些方法只有他们可以使用它的应用程序。 –

+2

如果你有公司客户,你有合法的方法来确保未经授权的使用受到惩罚。除此之外,您可以使用[.NET的许可机制](https://www.developer.com/net/csharp/article.php/3074001)为您的库取代使用密码。这仍然存在如何确保客户拥有无效许可证时图书馆不能工作的问题。它仍然是可以修补的,所以你必须在代码中隐藏killswitches时有所创意。但是没有绝对的安全性,有人决定可以在任何情况下从库中补充许可证检查。 – Joey

如果你有固定的密码,然后你可以有一个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

是的,确切地说。 ! –

存储像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这是您可以绝对实现的附加功能。以上答案仅针对您的问题。顺便说一下,加密确实是最好的选择。 –