我正在尝试实现一个加密助手类,该类使用内置的 GenerateKey 方法生成随机密钥并将其作为字符串返回。我正在使用的对象是;
DESCryptoServiceProvider
RC2CryptoServiceProvider
Rijndael管理
在为所选对象调用 GenenrateKey 方法后,我尝试将键转换为要返回的字符串。
我的问题是我在这个和其他各种网站上看到的所有功能都没有按照我想要的方式工作。例如,如果我为 DES 加密对象运行以下示例;
public String GenerateRandomKey()
{
DESCryptoServiceProvider encryptObject = new DESCryptoServiceProvider();
encryptObject.Padding = PaddingMode.Zeros;
encryptObject.GenerateKey();
string key =
Convert.ToBase64String(encryptObject.Key,0,encryptObject.Key.Length);
return key;
}
返回的密钥字符串的一个示例是 A01190NXvPI=,它是 12 个字符,但我期望 DES 是 8 个字符的字符串。其他加密方法类似地返回太长的密钥字符串。
我确信这只是一个编码问题,但我已经尝试了所有这些,但仍然没有运气。我还尝试添加逻辑来去除键字节数组中可能存在的任何填充或返回字符,但同样没有运气。