C#中的加密和解密类设计

下面是一个基于 ProtectedData 类和 DataProtectionScope 的静态类 Cypher 的设计,用于加密和解密数据。该类封装了加密和解密的逻辑,并提供了简单易用的接口。

设计目标
封装加密和解密逻辑:

提供静态方法 Encrypt 和 Decrypt,分别用于加密和解密数据。

支持字符串和字节数组的加密和解密。

支持自定义熵:

允许用户提供可选的熵(optionalEntropy)以增加安全性。

异常处理:

捕获并处理加密和解密过程中可能抛出的异常。

灵活性:

支持 DataProtectionScope.CurrentUser 和 DataProtectionScope.LocalMachine。

实现代码

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

public static class Cypher
{
    /// <summary>
    /// 加密字符串。
    /// </summary>
    /// <param name="data">要加密的字符串。</param>
    /// <param name="scope">数据保护范围(默认当前用户)。</param>
    /// <param name="optionalEntropy">可选的熵(增加安全性)。</param>
    /// <returns>加密后的 Base64 字符串。</returns>
    public static string Encrypt(string data, DataProtectionScope scope = DataProtectionScope.CurrentUser, byte[] optionalEntropy = null)
    {
        if (string.IsNullOrEmpty(data))
            throw new ArgumentNullException(nameof(data));

        try
        {
            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            byte[] encryptedBytes = ProtectedData.Protect(d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值