메뉴 건너뛰기

라이온하트 2nd edition

홈페이지를 새롭게 리뉴얼합니다.

조회 수 85578 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


1. Encrypt
     //-----------------------------------------------------------------------------
    public static void SerializeEncryptObject(string path, object obj, System.Type type, SymmetricAlgorithm key)
    {
        using(FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
        {
            using(CryptoStream cs = new CryptoStream(fs, key.CreateEncryptor(), CryptoStreamMode.Write))
            {
                using(StreamWriter sw = new StreamWriter(cs, Encoding.UTF8))
                {                
                    try
                    {
                        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                        ns.Add("", "");
                        
                        XmlSerializer serializer = new XmlSerializer(type);
                        serializer.Serialize(sw, obj, ns);
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogWarning(ex.ToString());    
                    }
                    finally
                    {
                        sw.Close();
                        cs.Close();
                        fs.Close();
                    }
                }
            }
        }
    }    

2. Decrypt
    //-----------------------------------------------------------------------------
    public static string LoadXmlFromEncryptFile(string _filePath, SymmetricAlgorithm key)
    {
        if (File.Exists(_filePath) == false)
        {
            _deserializeErrorString = System.String.Format("File({0}) does not exists", _filePath);
            return "";
        }
        
        using(FileStream fs = File.Open(_filePath, FileMode.Open))
        {
            using(CryptoStream cs = new CryptoStream(fs, key.CreateDecryptor(), CryptoStreamMode.Read))
            {
                using(StreamReader sr = new StreamReader(cs, Encoding.UTF8))
                {
                    try
                    {
                        return sr.ReadToEnd();
                    }
                    catch(System.Exception ex)
                    {
                        Debug.LogWarning(ex.ToString());
                        _deserializeErrorString = ex.ToString();
                    }
                    finally
                    {
                        sr.Close();
                        cs.Close();
                        fs.Close();
                    }
                }
            }
        }
        
        return "";
    }

3. Usage
-
private readonly string SECRET_KEY = "12345678";    // must be 64bit, 8bytes

private System.Security.Cryptography.DESCryptoServiceProvider mCryptoProvider = null;

mCryptoProvider = new System.Security.Cryptography.DESCryptoServiceProvider();
mCryptoProvider.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(SECRET_KEY);        mCryptoProvider.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(SECRET_KEY);

-
SerializeEncryptObject("FilePath", Type, mCryptoProvider);
string xmlString = LoadXmlFromEncryptFile("FilePath", mCryptoProvider);


http://limchaeng.tistory.com/21


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
105 C# MySQL to CSV && csv to mysql 3 LionHeart 2015.10.03 149053
104 Android Unity 타임 함수 badung007 2015.08.08 79081
103 금융개발 [링크] 수정주가와 갭 보정 LionHeart 2015.08.06 55372
102 Android Unity 코루틴 명령어 badung007 2015.08.06 84846
101 OS csv를 MySQL로 삽입 LionHeart 2015.07.27 63870
100 C# C#, Candle Stick 차트 (dotnet 4.5 framework) LionHeart 2015.07.06 107591
99 C# 표준편차 1 LionHeart 2015.07.01 74154
98 C# C#, JSON 이용 LionHeart 2015.06.25 121008
97 C# C#에서 SFTP 구현 LionHeart 2015.06.10 116277
96 OS sulinux APM 설치 (link) LionHeart 2015.06.03 86014
95 C# [링크] 키보드 잠그기 (후킹) LionHeart 2015.05.07 110175
94 C# 표준편차 (볼린저밴드 구현을 위한) LionHeart 2015.04.29 260529
93 Android Unity CameraReSize badung007 2015.04.10 75665
92 C# [스크랩] C# 2.0 에서 DataGridview 로 멀티스레드 검색 LionHeart 2015.04.09 113068
91 OS MySQL 5.1.73의 Windows 및 Linux의 속도비교 1 file LionHeart 2015.03.05 70292
90 C# C# XML 쓰고 읽기 LionHeart 2015.02.10 225858
89 Information 아르바이트생이 갑자기 그만둔 경우 근로계약 위반에 해당하나요? LionHeart 2014.12.30 87454
88 Information 대법원 2005. 6. 10. 선고 2004다29934 판결 LionHeart 2014.11.28 67150
87 Information [동아일보] 죽음도 지울수 없는 ‘주홍글씨’… 지워야 산다 LionHeart 2014.11.14 88259
86 OS apache VirtualHost 마스터 LionHeart 2014.10.23 107494
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 12 Next ›
/ 12