Beispiel #1
0
        //Hàm giải mã Data
        public static string DecryptData(string sInputFilename)
        {
            MyFileCryptography MyFileCrypto = new MyFileCryptography();
            //Set Algorithms
            MyFileCrypto.SetAlgorithms("Triple DES");

            try
            {
                //Đọc Key từ File ra và gán vào trong object MyFileCrypto.Secretkey
                MyFileCrypto.ReadSecretKeyfromFile(sInputFilename);
            }
            catch
            {
                return null;
            }

            try
            {
                //Giải mã Secret key với Private Key
                MyFileCrypto.DecryptSecretKeywithRSAAlgorithm(sPrivateKey_Default, 1024);
            }
            catch
            {
                return null;
            }

            try
            {
                StreamReader srReader = new StreamReader(sInputFilename);
                string sKey = srReader.ReadLine();
                srReader.Close();

                List<byte> lContent = new List<byte>();
                FileStream fsReadContent = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);
                long lContentLength = fsReadContent.Length - sKey.Length - 2; //lay do dai content

                byte[] bContent = new byte[lContentLength];
                fsReadContent.Seek(sKey.Length + 2, SeekOrigin.Begin); //chuyen den vi tri ket thuc key + 2 byte xuong dong
                fsReadContent.Read(bContent, 0, bContent.Length); //lay noi dung de giai ma
                fsReadContent.Close();

                //Giải mã File với key vừa đc giải mã và Input là file Temp ở trên
                return MyFileCrypto.DecryptDatawithSecretKey(bContent,  1, 0); //0 = ECB Mode
            }
            catch
            {
                return null;

            }

            return null;
        }
Beispiel #2
0
        //Hàm giải mã File
        public static bool DecryptFile(string sInputFilename, string sOutputFilename)
        {
            MyFileCryptography MyFileCrypto = new MyFileCryptography();
            //Set Algorithms
            MyFileCrypto.SetAlgorithms("Triple DES");

            try
            {
                //Đọc Key từ File ra và gán vào trong object MyFileCrypto.Secretkey
                MyFileCrypto.ReadSecretKeyfromFile(sInputFilename);
            }
            catch
            {
                return false;
            }

            try
            {
                //Giải mã Secret key với Private Key
                MyFileCrypto.DecryptSecretKeywithRSAAlgorithm(sPrivateKey_Default, 1024);
            }
            catch
            {
                return false;
            }

            try
            {
                //Tạo 1 file Temp chứ nội dung mã hoá, tạo 1 string chứa đường dẫn File Temp này
                string tempInput = MyFileCrypto.ReadandCreateTempCryptoFile(sInputFilename);

                //Giải mã File với key vừa đc giải mã và Input là file Temp ở trên
                MyFileCrypto.DecryptFilewithSecretKey(tempInput, sOutputFilename, 1, 0); //0 = ECB Mode

                //Sau khi giải mã thì Delete file Temp này đi
                MyFileCrypto.DeleteTempCryptoFile(tempInput);
            }
            catch
            {
                return false;

            }

            return true;
        }
Beispiel #3
0
        //Hàm mã hoá File
        public static bool EncryptFile(string sInputFilename, string sOutputFilename)
        {
            MyFileCryptography MyFileCrypto = new MyFileCryptography();
            //Set Algorithms
            MyFileCrypto.SetAlgorithms("Triple DES");
            //Generate key
            MyFileCrypto.GenerateSecretKey();

            //Encrypt File;
            try
            {
                MyFileCrypto.EncryptFilewithSecretKey(sInputFilename, sOutputFilename, 1, 0); //1,0 = ECB mode;
            }
            catch
            {
                return false;
            }

            try
            {
                MyFileCrypto.EncryptSecretKeyWithRSAAlgo_DirectPublicKey(sPublicKey_Default, iPublicKeyLength_Default);
            }
            catch
            {
                return false;
            }

            try
            {
                //Add key vào File đã mã hoá
                MyFileCrypto.AddSecretKeytoFile(sOutputFilename);
            }
            catch
            {
                return false;
            }

            return true;
        }