gpt4 book ai didi

c# - 使用 rijndael 加密

转载 作者:太空狗 更新时间:2023-10-29 21:52:15 25 4
gpt4 key购买 nike

我在编程方面很新。我写了下面的代码来提示用户输入密码来加密文件,但是当密码长度为 8 时它才有效,我该怎么做才能接受密码有多少个字符?

 string pass = textBox2.Text.ToString();
string password = @"" + pass + "";
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);


FileStream fsCrypt = new FileStream(@"c:\\users\\new", FileMode.Create);
name = fsCrypt.Name;
RijndaelManaged RMCrypto = new RijndaelManaged();

CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);

FileStream fsIn = new FileStream(filename, FileMode.Open);

int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);

最佳答案

您需要一个函数来从您的密码中获取 Rijndael 的有效 key 长度,目前,您对 UnicodeEncoding.GetBytes 的使用只会为特定的离散长度提供此功能密码,如您所见。

您应该使用另一个函数从您的密码中获取 key - 也许获取您生成的字节数组,并在其上运行像 SHA1 这样的加密散列函数。 SHA1 会给你一个 128 位的长度,就像你目前的 8 个字符的密码一样,但不管密码的长度如何。

关于c# - 使用 rijndael 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013368/

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