Пример #1
0
        public byte[] Encrypt(byte[] data, int offset, int count, dcryptCompressionOptions compression = dcryptCompressionOptions.NoCompress)
        {
            //compression?
            if (compression == dcryptCompressionOptions.Compress)
            {
                data   = Compress(data);
                count  = data.Length;
                offset = 0;
            }
            var newdata = new byte[count + 1];
            //start in here.
            var p = new byte[1];

            rng.GetBytes(p);
            var randchr = p[0];
            var chr     = key[randchr][randchr];

            for (var i = offset; i < count; i++)
            {
                chr = key[chr][data[i]];
                Buffer.BlockCopy(new[] { chr }, 0, newdata, i, 1);
            }
            //append first byte to end.
            Buffer.BlockCopy(new[] { randchr }, 0, newdata, newdata.Length - 1, 1);
            return(newdata);
        }
Пример #2
0
 public byte[] Encrypt(byte[] data, dcryptCompressionOptions compression)
 {
     return(Encrypt(data, 0, data.Length, compression));
 }