windows phone加密和解密文件

 private void decryption(string mima)
        {
            IsolatedStorageFileStream stream = new IsolatedStorageFileStream("aaa.zip加密", FileMode.Open, FileAccess.Read, this.storgfile);
            IsolatedStorageFileStream stream2 = new IsolatedStorageFileStream("aaa.zip" + "解密", FileMode.OpenOrCreate, FileAccess.Write, this.storgfile);
            byte[] buffer = new byte[100];
            long num = 0L;
            long length = stream.Length;
            string password = mima;
            string s = "saltvalue";
            byte[] salt = Encoding.UTF8.GetBytes(s);
            Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(password, salt);
            this.aes.KeySize = this.aes.LegalKeySizes[0].MaxSize;
            this.aes.BlockSize = this.aes.LegalBlockSizes[0].MaxSize;
            this.aes.Key = bytes.GetBytes(this.aes.KeySize / 8);
            this.aes.IV = bytes.GetBytes(this.aes.BlockSize / 8);
            CryptoStream stream3 = new CryptoStream(stream2, this.aes.CreateDecryptor(this.aes.Key, this.aes.IV), CryptoStreamMode.Write);
            try
            {
                try
                {
                    while (num < length)
                    {
                        int count = stream.Read(buffer, 0, 100);
                        stream3.Write(buffer, 0, count);
                        num += count;
                    }
                    stream3.Close();
                }
                catch
                {
                    MessageBox.Show("密码不正确!无法解密!");
                }
            }
            finally
            {
                stream.Close();
                stream2.Close();
            }
        }
 private void encryption(string mima)
        {
            //try
            {
                IsolatedStorageFileStream stream = new IsolatedStorageFileStream("aaa.zip", FileMode.Open, FileAccess.Read, this.storgfile);
                IsolatedStorageFileStream stream2 = new IsolatedStorageFileStream("aaa.zip" + "加密", FileMode.OpenOrCreate, FileAccess.Write, this.storgfile);
                byte[] buffer = new byte[100];
                long num = 0L;
                long length = stream.Length;
                string password = mima;
                string s = "saltvalue";
                byte[] salt = Encoding.UTF8.GetBytes(s);
                Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(password, salt);
                this.aes.KeySize = this.aes.LegalKeySizes[0].MaxSize;
                this.aes.BlockSize = this.aes.LegalBlockSizes[0].MaxSize;
                this.aes.Key = bytes.GetBytes(this.aes.KeySize / 8);
                this.aes.IV = bytes.GetBytes(this.aes.BlockSize / 8);
                CryptoStream stream3 = new CryptoStream(stream2, this.aes.CreateEncryptor(this.aes.Key, this.aes.IV), CryptoStreamMode.Write);
                while (num < length)
                {
                    int count = stream.Read(buffer, 0, 100);
                    stream3.Write(buffer, 0, count);
                    num += count;
                }
                MessageBox.Show("文件成功加密!");
                stream3.Close();
                stream.Close();
                stream2.Close();
            }
            //catch
            //{
            //    MessageBox.Show("没有将文件放入指定的IsolatedStore目录下!");
            //}
        }

 

你可能感兴趣的:(windows,phone)