C# 有没有办法用可以用作函数参数的元素创建枚举式构造?

C# 有没有办法用可以用作函数参数的元素创建枚举式构造?,c#,C#,关于这个问题的非常简短的背景:我是一名CS学生,刚刚开始一个新的软件开发学徒职位。我主要使用的是C语言,我没有太多的经验(我为类/项目编写的大部分内容都是Java语言),我的经理知道这一点,所以我认为只要问他或其他高级开发人员就不会有问题。然而,我想证明我能够自己解决一些问题,所以我想我应该先问一下 本质上,我的任务是修改一个类,该类用于加密和解密各种信息,如客户信息。我的经理要求我修改程序,以便能够使用几个salt值中的一个启动加密,每个salt值都是静态的,并且与给定的信息类别相关。他建议我

关于这个问题的非常简短的背景:我是一名CS学生,刚刚开始一个新的软件开发学徒职位。我主要使用的是C语言,我没有太多的经验(我为类/项目编写的大部分内容都是Java语言),我的经理知道这一点,所以我认为只要问他或其他高级开发人员就不会有问题。然而,我想证明我能够自己解决一些问题,所以我想我应该先问一下

本质上,我的任务是修改一个类,该类用于加密和解密各种信息,如客户信息。我的经理要求我修改程序,以便能够使用几个salt值中的一个启动加密,每个salt值都是静态的,并且与给定的信息类别相关。他建议我使用一个枚举器来包含salt值,然后根据要加密的信息类型将这些值拉入加密和解密方法,这些信息作为字符串参数传递给这些方法

我浏览了许多类似的线程,这些线程让我了解了如何创建类似枚举器的结构,以包含多对字符串(键是信息类型,值是关联的salt)。但是,我不确定如何将这些值传递给类中的其他方法,因为我无法找到一种方法将它们作为参数直接传递给encrypt和decrypt方法。我认为有一些混乱的方法可能会奏效,但我认为必须有一个更完善的解决方案,我不知道,因为我对c#的经验相对不足


如果我能提供任何其他信息,请让我知道。很抱歉,如果这个问题很难理解,我已经潜伏在堆栈溢出上多年了,但这是我第一次发布问题,所以我可能没有清楚地表达我的问题。提前感谢您提供的任何帮助

加密不使用salt。它使用键,可能还使用随机填充。Salt用于散列,通常每次都应该不同,所以将它们存储在代码中是没有意义的

加密密钥不会经常更改,但它们也应该能够更改(以防泄露),因此将它们存储在代码中也没有意义。它们应该进入配置,或者如果它们是敏感密钥,则应该进入安全密钥存储。如果您没有一个安全的地方来存储它们,您可以使用加密和解密它们

一旦确定了它们的存储位置,就可以编写一些代码将它们读入
词典
词典
,并使用它。例如:

enum KeyType
{   
    Customer = 1,
    Administrator = 2,
    Application = 3
}

class Encryptor
{
    static readonly Dictionary<KeyType, string> keyLookup = new Dictinary<KeyType, string>();

    static public Encryptor()
    {
        keyLookup.Add(KeyType.Customer, GetCustomerCryptoKey());
        keyLookup.Add(KeyType.Administrator, GetAdminCryptoKey());
        keyLookup.Add(KeyType.Application, GetApplicationCryptoKey());
    }

    public string Encrypt(KeyType keyType, string input)
    {
        var key = keyLookup[keyType];
        return EncryptInternal(input, key);
    }
}
enum键类型
{   
客户=1,
管理员=2,
应用=3
}
类加密机
{
静态只读字典keyLookup=新字典();
静态公共加密程序()
{
添加(KeyType.Customer,GetCustomerCryptoKey());
添加(KeyType.Administrator,GetAdminCryptoKey());
添加(KeyType.Application,GetApplicationCryptoKey());
}
公共字符串加密(KeyType、KeyType、字符串输入)
{
var key=keyLookup[keyType];
返回EncryptInternal(输入、密钥);
}
}

值的类型是什么?您可以使用类似的模式来处理几个预定义的“常量”值吗?我需要提取的值是字符串。我会尝试一下你的建议,然后再回复你-我看到一些人建议将其作为创建一种字符串类型枚举器的一种方法,但还没有尝试实现这种特定的方法。谢谢你的输入,作为回应,我将尝试解释为什么这个请求也让我感到困惑。我对加密/密码学知之甚少,所以我不得不参加一个关于使用salt创建散列值的速成班(这就是这个类的目的,我可能误用了术语“加密”和“解密”)。基于我有限的理解,我花了一上午的时间编写代码来生成随机的salt值,并与文本值组合以创建散列值。因此,当我的经理告诉我盐值应该保持不变时,我非常困惑。