gpt4 book ai didi

C# 加密算法

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:33 26 4
gpt4 key购买 nike

互联网上有很多关于加密的答案,但我一直无法找到我正在寻找的东西:使用 c# 提供的工具对字符串和文本文件进行加密的简单强加密。

我的主要问题是我不知道如何将 IV 保存到文本文件的开头或如何创建随机 IV。我有一个关于加密流的示例,我也看到了一个关于 DES 的示例,但它们使用相同的 IV 和 key ,这(据所知)不是一件好事。

最佳答案

你是对的,使用相同的 IV 是一种不好的做法,尤其是在 Key 或 IV 是硬编码的情况下。我建议使用 AesManaged 类。它使用当前标准的 AES 算法。生成 IV 相当简单:

var aes = new AesManaged(); //Set your KeySize if you will generate a key too.
aes.GenerateIV();
var iv = aes.IV;

这是获取新初始化向量的简单方法。如果您的目标是加密文件,您可以存储文件,但您将如何处理 key ?在您的应用程序中对其进行硬编码通常不是一种很好的方法。如果您的应用程序将基于密码,那么您可以从 Rfc2898DeriveBytes 生成 key 获取基于密码的字节数组。这样,您的应用程序永远不知道加密 key 是什么。

这是将 IV 写入文件的示例,然后是文件内容。

using (AesManaged aes = new AesManaged())
{
//Set the Key here.
aes.GenerateIV();
using (var transform = aes.CreateEncryptor())
{
using (var fileStream = new FileStream("C:\\in.txt", FileMode.Open))
{
using (var saveTo = new FileStream("C:\\out.txt", FileMode.Create))
{
using (var cryptoStream = new CryptoStream(saveTo, transform,CryptoStreamMode.Write))
{
var iv = aes.IV;
cryptoStream.Write(iv, 0, iv.Length);
fileStream.CopyTo(cryptoStream);
}
}
}
}
}

关于C# 加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com