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目錄下!"); //} }