Алгоритм Хаффмена - C#
Формулировка задачи:
Здравствуйте...имеется у кого-нибудь исходник алгоритма сжатия Хаффмена на C#?
Буду очень признателен!
upd 1.
Не правильно сформулировал - не сжатие, а шифрование Хаффмена .Требуется не шифровать файл, а просто строку текста. Например в Textbox1 вводишь строку типа "блаблабла", а в Textbox2 выводится зашифрованный текст. Большое спасибо заранее!
Решение задачи: «Алгоритм Хаффмена»
textual
Листинг программы
using System; using System.IO; using System.Text; using System.Security.Cryptography; namespace RSDN { public class Crypt { public static byte[] Encrypt(byte[] data,string password) { SymmetricAlgorithm sa = Rijndael.Create(); ICryptoTransform ct = sa.CreateEncryptor( (new PasswordDeriveBytes(password,null)).GetBytes(16), new byte[16]); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,ct,CryptoStreamMode.Write); cs.Write(data,0,data.Length); cs.FlushFinalBlock(); return ms.ToArray(); } public static string Encrypt(string data,string password) { return Convert.ToBase64String(Encrypt(Encoding.UTF8.GetBytes(data),password)); } static public byte[] Decrypt(byte[] data,string password) { BinaryReader br = new BinaryReader(InternalDecrypt(data,password)); return br.ReadBytes((int)br.BaseStream.Length); } static public string Decrypt(string data,string password) { CryptoStream cs = InternalDecrypt(Convert.FromBase64String(data),password); StreamReader sr = new StreamReader(cs); return sr.ReadToEnd(); } static CryptoStream InternalDecrypt(byte[] data,string password) { SymmetricAlgorithm sa = Rijndael.Create(); ICryptoTransform ct = sa.CreateDecryptor( (new PasswordDeriveBytes(password,null)).GetBytes(16), new byte[16]); MemoryStream ms = new MemoryStream(data); return new CryptoStream(ms,ct,CryptoStreamMode.Read); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д