메뉴 건너뛰기

라이온하트 2nd edition

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

조회 수 85560 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
85 Computer AjaxPlorer 4.2.0 매뉴얼 [한글관련 설정] LionHeart 2014.10.02 134560
84 OS apache, cBand module LionHeart 2014.10.01 113420
83 OS Apache, DDoS 방어모듈 1 LionHeart 2014.10.01 169835
82 Information MONSTA web FTP LionHeart 2014.10.01 134870
81 Information 404 NOT FOUND file LionHeart 2014.09.30 70502
80 OS Windows 8.1 administrator 계정 활성화 명령어 LionHeart 2014.09.25 150841
79 Android [ 유니티3D엔진 ] 유니티 4.3.4 -> 4.2.2 다운그레이드 badung007 2014.09.20 80140
78 OS Doly의 CentOS7 강좌16 6. CentOS 네트워크 1 - 개념, 2 - 이더넷 설정 LionHeart 2014.09.11 100139
77 OS CentOS 6.5 네트워크 설정 완전 초기화 LionHeart 2014.09.06 134051
76 OS vsftpd 접속할때 500 OOPS : child died 에러날때 LionHeart 2014.09.06 71676
75 OS DHCP 서버와 IP 마스크레이드 1 LionHeart 2014.09.01 123746
74 OS [SQL] mysql 에서 bigint(20), int(11) 의 의미 badung007 2014.08.28 87022
73 OS [SQL] mysql 에서 CHAR(40) 와 VARCHAR(40) 의 성능 차이 3 badung007 2014.08.28 73569
72 OS bind 9 리눅스 네임서버 설정방법 LionHeart 2014.08.27 89162
71 OS SULinux 2.0 웹서버(Apache) 설정 및 운영 LionHeart 2014.08.26 154437
70 OS 리눅스 - 아파치 2.x 트래픽 제한 LionHeart 2014.08.26 225152
69 IOS [ 유니티3D엔진 ] Object serializing in Unity on iOS devices. badung007 2014.08.26 65929
» IOS [ 유니티3D엔진 ] XML Serialize Encrypt/Decrypt. badung007 2014.08.26 85560
67 IOS [ 유니티3D엔진 ] 유니티의 iOS 빌드는 왜 다른가? badung007 2014.08.26 74517
66 OS CentOS USB install (USB로 CentOS 설치하기) LionHeart 2014.08.22 111870
Board Pagination ‹ Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next ›
/ 12