Esempio n. 1
0
        static void Main(string[] args)
        {
            // var cc = new Symmetric(Aes.Create());
            // for (var i = 1; i < 2000; i++)
            // {
            //     var buff = Enumerable.Range(0, i).Select(p => (byte) (p & 0xFF)).ToArray();
            //     var b    = cc.Encrypt(buff);
            //     var z    = cc.Decrypt(b);
            //
            //     var b2 = cc.Encrypt(buff);
            //     var z2 = cc.Decrypt(b);
            // }

            var aes = Aes.Create();

            aes.GenerateKey();
            aes.GenerateIV();

            var fileName = Path.Combine(@"D:\test2.container");

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            var text = string.Join(Environment.NewLine, Enumerable.Range(0, 15).Select(p => $"Hello, line #{p}, Текст, κείμενο, ਟੈਕਸਟ, random guid: {Guid.NewGuid()}"));

            const int maxItems = 50;

            using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256).With(aes)))
            {
                foreach (var itemId in Enumerable.Range(0, maxItems))
                {
                    var path = (itemId / 10).ToString("D4");
                    pc.Put($"/{path}/item{itemId}", text);
                }
            }

            using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256).With(aes)))
            {
                Console.WriteLine("File length: {0} bytes, entries: {1}", pc.Length, pc.Find().Length);
                Console.WriteLine();

                var mask    = "/004?/*";
                var entries = pc.Find(mask);
                Console.WriteLine("Found {0} items with mask: {1}, show first 10:", entries.Length, mask);
                foreach (var entry in entries.Take(10))
                {
                    var item = pc.GetString(entry.Name);
                    Console.WriteLine(entry);
                }
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var fileName = Path.Combine(Path.GetTempPath(), "test.container");

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256)))
            {
                pc.Put("item1", "Hello");
                pc.Put("item2", "User");

                // overwrite item1:
                pc.Put("item1", "Bye!");

                pc.Append("item1", "See you later!");

                pc.Delete("item2");

                pc.Put("item3", "another item");
            }

            using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256)))
            {
                var entries = pc.Find();
                foreach (var entry in entries)
                {
                    Console.WriteLine(entry);
                }

                Console.WriteLine();
                foreach (var entry in entries)
                {
                    Console.WriteLine("{0}: {1}", entry.Name, pc.GetString(entry.Name));
                }
            }
        }