System.Security.Cryptography.ProtectedData 9.0.0-preview.1.24080.9
About
System.Security.Cryptography.ProtectedData offers a simplified interface for utilizing Microsoft Windows DPAPI's CryptProtectData and CryptUnprotectData functions.
Note: Since it relies on Windows DPAPI, this package is only supported on Windows platforms. For more complex cryptographic operations or cross-platform support, consider the System.Security.Cryptography namespace.
Key Features
- Built upon the robust and secure Windows Data Protection API (DPAPI).
- Data can be protected either for current process or for any process on the machine.
- Scope of protection can be defined either to the current user or the local machine.
How to Use
Utilizing this package is quite simple, and it mainly revolves around two methods: Protect
and Unprotect
.
Here, originalData
is the data you want to protect, optionalEntropy
is an additional byte array used to increase encryption complexity, and DataProtectionScope
specifies whether the data protection should apply to the current user or the machine.
using System.Security.Cryptography;
using System.Text;
byte[] originalData = Encoding.UTF8.GetBytes("This is a secret");
byte[] optionalEntropy = new byte[64];
Random.Shared.NextBytes(optionalEntropy);
// To protect:
byte[] encryptedData = ProtectedData.Protect(
originalData,
optionalEntropy,
DataProtectionScope.CurrentUser);
// To unprotect:
byte[] decryptedData = ProtectedData.Unprotect(
encryptedData,
optionalEntropy,
DataProtectionScope.CurrentUser);
Main Types
The main type provided by this library is:
System.Security.Cryptography.ProtectedData
Additional Documentation
Related Packages
- PKCS and CMS algorithms: System.Security.Cryptography.Pkcs
Feedback & Contributing
System.Security.Cryptography.ProtectedData is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
Showing the top 20 packages that depend on System.Security.Cryptography.ProtectedData.
Packages | Downloads |
---|---|
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
99 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
71 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
8321c729934c0f8be754953439b88e6e1c120c24
When using NuGet 3.x this package requires at least version 3.4.
|
61 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
30ab651fcb4354552bd4891619a0bdd81e0ebdbf
When using NuGet 3.x this package requires at least version 3.4.
|
60 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
59 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
54 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
52 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
48 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
44 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
7e3dbdb95b30650eabade0ac73a10b22d4dbe8b3
When using NuGet 3.x this package requires at least version 3.4.
|
44 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
43 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
42 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
00490982c7952e96a1089818467caa6fd07541b2
When using NuGet 3.x this package requires at least version 3.4.
|
42 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
42 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
40 |
System.Configuration.ConfigurationManager
Provides types that support using XML configuration files (app.config). This package exists only to support migrating existing .NET Framework code that already uses System.Configuration. When writing new code, use another configuration system instead, such as Microsoft.Extensions.Configuration.
|
40 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
When using NuGet 3.x this package requires at least version 3.4.
|
38 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
36 |
System.Configuration.ConfigurationManager
Provides types that support using configuration files.
Commonly Used Types:
System.Configuration.Configuration
System.Configuration.ConfigurationManager
|
35 |
.NET Framework 4.6.2
- No dependencies.
.NET 8.0
- No dependencies.
.NET 9.0
- No dependencies.
.NET Standard 2.0
- System.Memory (>= 4.5.5)