/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example19_8.cs illustrates declarative role-based security
*/
using System;
using System.IO;
using System.Security.Permissions;
[PrincipalPermissionAttribute(SecurityAction.Demand, Role="Administrators")]
public class Example19_8
{
public static void Main()
{
// Create a new file to work with
FileStream fsOut = File.Create(@"c: emp est.txt");
// Create a StreamWriter to handle writing
StreamWriter sw = new StreamWriter(fsOut);
// And write some data
sw.WriteLine("'Twas brillig, and the slithy toves");
sw.WriteLine("Did gyre and gimble in the wabe.");
sw.Flush();
sw.Close();
}
}
File Stream
Illustrates encrypting a file
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example19_9.cs illustrates encrypting a file
*/
using System;
using System.IO;
using System.Security.Cryptography;
public class Example19_9
{
public static void Main()
{
// Create a new file to work with
FileStream fsOut = File.Create(@"c: empencrypted.txt");
// Create a new crypto provider
TripleDESCryptoServiceProvider tdes =
new TripleDESCryptoServiceProvider();
// Create a cryptostream to encrypt to the filestream
CryptoStream cs = new CryptoStream(fsOut, tdes.CreateEncryptor(),
CryptoStreamMode.Write);
// Create a StreamWriter to format the output
StreamWriter sw = new StreamWriter(cs);
// And write some data
sw.WriteLine("'Twas brillig, and the slithy toves");
sw.WriteLine("Did gyre and gimble in the wabe.");
sw.Flush();
sw.Close();
// save the key and IV for future use
FileStream fsKeyOut = File.Create(@"c: empencrypted.key");
// use a BinaryWriter to write formatted data to the file
BinaryWriter bw = new BinaryWriter(fsKeyOut);
// write data to the file
bw.Write( tdes.Key );
bw.Write( tdes.IV );
// flush and close
bw.Flush();
bw.Close();
}
}
Illustrates decrypting a file
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example19_10.cs illustrates decrypting a file
*/
using System;
using System.IO;
using System.Security.Cryptography;
public class Example19_10
{
public static void Main()
{
// Create a new crypto provider
TripleDESCryptoServiceProvider tdes =
new TripleDESCryptoServiceProvider();
// open the file containing the key and IV
FileStream fsKeyIn = File.OpenRead(@"c: empencrypted.key");
// use a BinaryReader to read formatted data from the file
BinaryReader br = new BinaryReader(fsKeyIn);
// read data from the file and close it
tdes.Key = br.ReadBytes(24);
tdes.IV = br.ReadBytes(8);
// Open the encrypted file
FileStream fsIn = File.OpenRead(@"c: empencrypted.txt");
// Create a cryptostream to decrypt from the filestream
CryptoStream cs = new CryptoStream(fsIn, tdes.CreateDecryptor(),
CryptoStreamMode.Read);
// Create a StreamReader to format the input
StreamReader sr = new StreamReader(cs);
// And decrypt the data
Console.WriteLine(sr.ReadToEnd());
sr.Close();
}
}
Illustrates asymmetric cryptography
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example19_11.cs illustrates asymmetric cryptography
*/
using System;
using System.IO;
using System.Security.Cryptography;
public class Example19_11
{
public static void Main()
{
// Create a new crypto provider
RSACryptoServiceProvider rsa =
new RSACryptoServiceProvider();
// Data to encrypt
Byte[] testData = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// Encrypt the data
Byte[] encryptedData = rsa.Encrypt(testData, false);
Console.WriteLine(“Encrypted data:”);
for(int i=0; i
File Move Implementation
using System;
using System.IO;
class Class1 {
static void Main(string[] args) {
string [] cla = Environment.GetCommandLineArgs();
if (cla.GetUpperBound(0) == 2)
{
FileInfo fi = new FileInfo(cla[1]);
fi.MoveTo(cla[2]);
Console.WriteLine("File Created : " + fi.CreationTime.ToString());
Console.WriteLine("Moved to : " + cla[2]);
}
else
Console.WriteLine ("Usage: mv <source file> <destination file>");
}
}
Use the FileInfo Class to Delete Files with Ease
using System;
using System.IO;
class Class1 {
static void Main(string[] args) {
string [] cla = Environment.GetCommandLineArgs();
if (cla.GetUpperBound(0) == 1)
{
FileInfo fi = new FileInfo(cla[1]);
fi.Delete();
Console.WriteLine("File : " + cla[1]);
Console.WriteLine("Attributes: " + fi.Attributes.ToString());
Console.WriteLine("File Deleted...");
}
else
Console.WriteLine ("Usage: rm <filename>");
}
}
C# Implementation of the File Copy Command
using System;
using System.IO;
class Class1 {
static void Main(string[] args) {
string [] cla = Environment.GetCommandLineArgs();
if (cla.GetUpperBound(0) == 2) {
FileInfo fi = new FileInfo(cla[1]);
fi.CopyTo(cla[2],true);
Console.WriteLine("Copied " + fi.Length + " bytes.");
}
else{
Console.WriteLine ("Usage: cp <input file> <output file>");
}
}
}