【发布时间】:2017-03-08 09:00:26
【问题描述】:
我在 C# 中实现 AES 256 位算法,但我正在加密需要填充的 128 位纯文本块,所以我不想填充并想使用流密码
- 使用流密码而不是使用 128 位块
-
逐字节加密流
CryptLib _crypt = new CryptLib(); //string plainText = "This is the text to be encrypted"; String iv = CryptLib.GenerateRandomIV(16); //16 bytes = 128 bits string key = CryptLib.getHashSha256("my secret key", 31); //32 bytes = 256 bits MessageBox.Show(arm);////////////////////// String cypherText = _crypt.encrypt(string1, key, iv); Console.WriteLine("iv=" + iv); Console.WriteLine("key=" + key); Console.WriteLine("Cypher text=" + cypherText); MessageBox.Show(cypherText); textBox1.Text = cypherText; Console.WriteLine("Plain text =" + _crypt.decrypt(cypherText, key, iv)); MessageBox.Show(_crypt.decrypt(cypherText, key, iv)); String dypher = _crypt.decrypt(cypherText, key, iv); string outp = string.Empty; char[] value = dypher.ToCharArray();
【问题讨论】:
-
你有什么问题?
-
我的问题不是加密需要填充的 128 位块,我可以像流密码一样逐字节加密,因为我不想使用块,因为它需要填充我希望你现在理解我的问题
-
我前段时间创建了 AES-CTR 的 C# 实现,它是 AES 的流加密模式。见stackoverflow.com/a/29562965/613130
标签: c# encryption aes cryptlib