2009年9月16日 星期三

.NET 如何加密一字串,只讓執行加密的電腦才能解密。

就這樣:
ProtectedData 是 .NET 提供的加密類別,透過此類別加密的資料,只要執行加密的電腦才能解密。

下列程式碼所用到的 System.Security 組件要自行加入參考中。

public static string Protected(string password)

{

if (string.IsNullOrEmpty(password)) return string.Empty;

byte[] plain = Encoding.UTF8.GetBytes(password);

string key = "key";

byte[] cipher = ProtectedData.Protect(plain,

Encoding.UTF8.GetBytes(key),

DataProtectionScope.CurrentUser);

return Convert.ToBase64String(cipher);

}

public static string UnProtected(string base64String)

{

if (string.IsNullOrEmpty(base64String)) return string.Empty;

string key = "key";

byte[] cipher = Convert.FromBase64String(base64String);

byte[] plain = ProtectedData.Unprotect(cipher,

Encoding.UTF8.GetBytes(key),

DataProtectionScope.CurrentUser);

return Encoding.UTF8.GetString(plain);

}


沒有留言:

張貼留言