Skip to content

Commit 8ccf7b9

Browse files
authored
Update Encryptor.cs
1 parent 19d6267 commit 8ccf7b9

File tree

1 file changed

+59
-41
lines changed

1 file changed

+59
-41
lines changed

src/Backend/Encryptor.cs

Lines changed: 59 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,102 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
1+
using System;
62
using System.IO;
73
using System.Security.Cryptography;
84

9-
namespace Encryption_App
5+
namespace Aes
106
{
11-
class Encryptor
7+
class AesEncryption
128
{
13-
private static readonly string cryptFileEnding;
9+
public static void Main()
10+
{
11+
try
12+
{
13+
// Create a new instance of the AesManaged
14+
// class. This generates a new key and initialization
15+
// vector (IV).
16+
using (AesManaged myAes = new AesManaged())
17+
{
18+
19+
AES_Encrypt("file.txt", "file.crypt", new byte[10]);
20+
AES_Decrypt("file.crypt", "file.dcryptd", new byte[10]);
21+
}
1422

15-
public byte[] SymEncrypt(byte[] data, byte[] pwd)
23+
}
24+
catch (Exception e)
25+
{
26+
Console.WriteLine("Error: {0}", e.Message);
27+
}
28+
Console.Read();
29+
}
30+
private static void AES_Encrypt(string iF, string oF, byte[] passwordBytes)
1631
{
32+
1733
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
1834

19-
using (var ms = new MemoryStream())
35+
using (var outFile = File.Create(oF))
2036
{
21-
using (var AES = new AesManaged())
37+
38+
using (var AES = new RijndaelManaged())
2239
{
40+
2341
AES.KeySize = 256;
2442
AES.BlockSize = 128;
25-
AES.Padding = PaddingMode.PKCS7;
26-
AES.Mode = CipherMode.CBC;
27-
28-
var key = new Rfc2898DeriveBytes(pwd, saltBytes, 1000);
43+
var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 100000);
2944
AES.Key = key.GetBytes(AES.KeySize / 8);
3045
AES.IV = key.GetBytes(AES.BlockSize / 8);
31-
Console.WriteLine(Encoding.UTF8.GetString(AES.Key));
32-
Console.WriteLine(Encoding.UTF8.GetString(AES.IV));
46+
AES.Padding = PaddingMode.PKCS7;
47+
AES.Mode = CipherMode.CBC;
3348

34-
using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))
49+
using (var cs = new CryptoStream(outFile, AES.CreateEncryptor(), CryptoStreamMode.Write))
3550
{
36-
using (var bw = new BinaryWriter(cs))
51+
52+
using (var inFile = File.OpenRead(iF))
3753
{
38-
try
39-
{
40-
bw.Write(data, 0, data.Length);
41-
}
42-
catch(Exception ex)
54+
55+
using (var br = new BinaryReader(inFile))
4356
{
44-
return null;
57+
58+
sbyte data;
59+
while ((data = (sbyte)inFile.ReadByte()) != -1)
60+
cs.WriteByte((byte)data);
61+
4562
}
4663
}
4764
}
48-
return ms.ToArray();
4965
}
5066
}
5167
}
5268

53-
public byte[] SymDecrypt(byte[] data, byte[] pwd)
69+
private static void AES_Decrypt(string iF, string oF, byte[] passwordBytes)
5470
{
71+
5572
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
5673

57-
using (var ms = new MemoryStream())
74+
using (var inFile = File.OpenRead(iF))
5875
{
59-
using (AesManaged AES = new AesManaged())
76+
77+
using (var AES = new RijndaelManaged())
6078
{
79+
6180
AES.KeySize = 256;
6281
AES.BlockSize = 128;
63-
AES.Padding = PaddingMode.PKCS7;
64-
AES.Mode = CipherMode.CBC;
65-
66-
var key = new Rfc2898DeriveBytes(pwd, saltBytes, 1000);
82+
var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 100000);
6783
AES.Key = key.GetBytes(AES.KeySize / 8);
6884
AES.IV = key.GetBytes(AES.BlockSize / 8);
85+
AES.Padding = PaddingMode.PKCS7;
86+
AES.Mode = CipherMode.CBC;
6987

70-
using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write))
88+
using (var cs = new CryptoStream(inFile, AES.CreateDecryptor(), CryptoStreamMode.Read))
7189
{
72-
try
90+
91+
using (var outFile = File.Create(oF))
7392
{
74-
cs.Write(data, 0, data.Length);
75-
}
76-
catch(Exception ex)
77-
{
78-
return null;
93+
94+
sbyte data;
95+
while ((data = (sbyte)cs.ReadByte()) != -1)
96+
outFile.WriteByte((byte)data);
97+
7998
}
8099
}
81-
return ms.ToArray();
82100
}
83101
}
84102
}

0 commit comments

Comments
 (0)