11using System ;
2- using System . Collections . Generic ;
3- using System . Linq ;
4- using System . Text ;
5- using System . Threading . Tasks ;
62using System . IO ;
73using System . Security . Cryptography ;
84
95namespace Encryption_App
106{
11- class Encryptor
7+ class AESCryptoManager
128 {
13- public void SymEncrypt ( string Data )
14- {
9+ public void AES_Encrypt ( string iF , string oF , byte [ ] passwordBytes )
10+ {
1511
16- }
12+ byte [ ] saltBytes = new byte [ ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;
13+
14+ using ( var AES = new AesManaged ( ) )
15+ {
16+
17+ AES . KeySize = 256 ;
18+ AES . BlockSize = 128 ;
19+ var key = new Rfc2898DeriveBytes ( passwordBytes , saltBytes , 100000 ) ;
20+ AES . Key = key . GetBytes ( AES . KeySize / 8 ) ;
21+ AES . IV = key . GetBytes ( AES . BlockSize / 8 ) ;
22+ AES . Padding = PaddingMode . PKCS7 ;
23+ AES . Mode = CipherMode . CBC ;
24+
25+ using ( var outFile = File . Create ( oF ) )
26+ using ( var cs = new CryptoStream ( outFile , AES . CreateEncryptor ( ) , CryptoStreamMode . Write ) )
27+ using ( var inFile = File . OpenRead ( iF ) )
28+ using ( var br = new BinaryReader ( inFile ) )
29+ {
30+
31+ sbyte data ;
32+ while ( ( data = ( sbyte ) inFile . ReadByte ( ) ) != - 1 )
33+ cs . WriteByte ( ( byte ) data ) ;
34+
35+ }
36+
37+
38+ }
39+
40+ }
1741
18- public void SymEncrypt ( byte [ ] bArray , byte [ ] pwdBytes )
19- {
20- byte [ ] encryptedBytes = null ;
42+ public void AES_Decrypt ( string iF , string oF , byte [ ] passwordBytes )
43+ {
2144
22- // Set your salt here, change it to meet your flavor:
23- // The salt bytes must be at least 8 bytes.
2445 byte [ ] saltBytes = new byte [ ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } ;
2546
26- using ( MemoryStream ms = new MemoryStream ( ) )
47+ using ( var AES = new AesManaged ( ) )
2748 {
28- using ( RijndaelManaged AES = new RijndaelManaged ( ) )
29- {
30- AES . KeySize = 256 ;
31- AES . BlockSize = 128 ;
3249
33- var key = new Rfc2898DeriveBytes ( pwdBytes , saltBytes , 1000 ) ;
34- AES . Key = key . GetBytes ( AES . KeySize / 8 ) ;
35- AES . IV = key . GetBytes ( AES . BlockSize / 8 ) ;
50+ // AESManaged properties
51+ AES . KeySize = 256 ;
52+ AES . BlockSize = 128 ;
53+ AES . Padding = PaddingMode . PKCS7 ;
54+ AES . Mode = CipherMode . CBC ;
55+
56+ var key = new Rfc2898DeriveBytes ( passwordBytes , saltBytes , 100000 ) ;
57+
3658
37- AES . Mode = CipherMode . CBC ;
59+ // Set actual IV and key
60+ AES . Key = key . GetBytes ( AES . KeySize / 8 ) ;
61+ AES . IV = key . GetBytes ( AES . BlockSize / 8 ) ;
62+
63+ using ( var inFile = File . OpenRead ( iF ) )
64+ using ( var cs = new CryptoStream ( inFile , AES . CreateDecryptor ( ) , CryptoStreamMode . Read ) )
65+ using ( var outFile = File . Create ( oF ) )
66+ {
67+
68+ sbyte data ;
69+ while ( ( data = ( sbyte ) cs . ReadByte ( ) ) != - 1 )
70+ outFile . WriteByte ( ( byte ) data ) ;
3871
39- using ( var cs = new CryptoStream ( ms , AES . CreateEncryptor ( ) , CryptoStreamMode . Write ) )
40- {
41- cs . Write ( bArray , 0 , bArray . Length ) ;
42- cs . Close ( ) ;
43- }
44- encryptedBytes = ms . ToArray ( ) ;
4572 }
73+
4674 }
4775
48-
4976 }
50-
5177 }
52- }
78+ }
0 commit comments