在C#中满足以下内容的最现代(最佳)方式是什么?
string encryptedString = SomeStaticClass.Encrypt(sourceString);
string decryptedString = SomeStaticClass.Decrypt(encryptedString);
Run Code Online (Sandbox Code Playgroud)
但最小的涉及盐,键,与字节[]等混乱的大惊小怪等.
谷歌搜索和混淆我发现的东西(你可以看到类似的SO Q列表,看这是一个欺骗性的问题).
这是一个非常常见的异常,但显然我找到的解决方案都没有解决我的问题。
我有一个加密和一个解密方法;我加密一个字符串并将其写入文件,然后从文件中读取该字符串并解密(理论上)。事实上,我得到了一个
CryptographicException:要解密的数据长度无效
在该过程的解密方面。
这是Main()完成所有工作的方法:
public static void Main()
{
var filename = "test.encrypted";
var plainText = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
string password = "A better password than this";
string salt = "Sodium Chloride";
var padding = PaddingMode.Zeros; // I have tried every padding mode to no avail
var encrypted = Encrypt<AesManaged>(plainText, password, salt, padding);
File.WriteAllBytes(filename, encrypted);
var fileBytes = File.ReadAllBytes(filename);
var decrypted = Decrypt<AesManaged>(fileBytes, password, salt, padding);
Console.ReadLine(); …Run Code Online (Sandbox Code Playgroud)