绝顶之上

会当凌绝顶,一览众山小。

使用 DPAPI 加解密数据

发布日期:

DPAPI 内置于 Windows 2000 及更高版本操作系统中,是 Windows 平台上特有的加密接口。使用 DPAPI 加解密数据,是相对可靠的,而且不需要额外储存密钥,使用起来也非常方便。

下面列出代码示例:

using System;
using System.Text;
using System.Security.Cryptography;

namespace KeyProtectTest
{
    internal class Program
    {
        static byte[] optionalEntropy = null;

        static byte[] Protect(string originString)
        {
            var originData = Encoding.UTF8.GetBytes(originString);
            var encryptedData = ProtectedData.Protect(originData, optionalEntropy, DataProtectionScope.CurrentUser);
            return encryptedData;
        }

        static string Unprotect(byte[] encryptedData)
        {
            var originData = ProtectedData.Unprotect(encryptedData, optionalEntropy, DataProtectionScope.CurrentUser);
            return Encoding.UTF8.GetString(originData);
        }

        static void Main(string[] args)
        {
            var originString = "Username:Password:Extend";

            var encryptedData = Protect(originString);
            var reversedString = Unprotect(encryptedData);

            Console.WriteLine(reversedString);
            Console.ReadLine();
        }
    }
}