Animated Gif 생성하기

현재 주소 복사
트랙백 주소 복사
방실이님의 글 (2/8/2011 10:14:42 AM) Viewing : 1942

GDI+를 이용해서 이미지 파일을 생성할 경우 애니메이션 gif 로는 저장 할 수가 없습니다.

아래 링크의 라이브러리를 이용하면..간단 할 것 같네요..

해봐야징.....

http://www.codeproject.com/KB/GDI-plus/NGif.aspx


마지막 업데이트 : (2/8/2011 10:14:42 AM)

TAG : 없음



Trackback 보기 (0)
댓글 보기 (0)
댓글 쓰기

다음 지도 API 사용하기

현재 주소 복사
트랙백 주소 복사
방실이님의 글 (1/14/2011 8:30:32 PM) Viewing : 2301

지인의 요청으로 다음지도 api를 건드려 봤습니다.

뭐 생각 보다는 아주 쓰기 쉽게 만들었네요...


마지막 업데이트 : (1/14/2011 8:30:32 PM)

TAG : 없음



첨부 파일 보기 (1)
Trackback 보기 (0)
댓글 보기 (2)
sjho2222님의 글 (1/14/2011 10:41:42 PM)
우리 아빠가 방실이를 좋아하는데 건강하세요



방실이님의 글 (1/17/2011 5:56:01 PM)
아..넵 감사합니다..^^



댓글 쓰기

IIS 로 FTPS 설정하기

현재 주소 복사
트랙백 주소 복사
방실이님의 글 (1/14/2011 10:17:42 AM) Viewing : 2518

http://learn.iis.net/page.aspx/304/using-ftp-over-ssl/

음..필요하게 되어서 검색 하다가..찾았네요.

http 프로토콜도 https 가 있기에 ftp도 있을꺼라는 막연한..추측으로 검색을 해보니..

정말 있네요..ㅋㅋ

아시는 분들은 이전부터 알고 계셨겠지만...ㅡ.ㅡ;;;;

addon 만 설치하면 간단하군요.. 인증서가 문제...돈돈돈....


마지막 업데이트 : (1/14/2011 10:18:04 AM)

TAG : IIS FTPS 



Trackback 보기 (0)
댓글 보기 (0)
댓글 쓰기

RPNetworks.Security

현재 주소 복사
트랙백 주소 복사
방실이님의 글 (1/5/2011 11:40:08 AM) Viewing : 5622

오늘 살펴볼 내용은 암호화입니다.

지원하는 암호화 알고리즘은 크게 3가지입니다.

ARIA 알고리즘, SEED 알고리즘, HASH 알고리즘입니다.

그중에 HASH알고리즘은 MD5, SHA1, SHA256 을 지원합니다.

ARIA 알고리즘과 SEED 알고리즘은 우리나라 표준 알고리즘이며 대칭키 기반 블럭암호화 알고리즘입니다.

우리 나라 표준이기에 공공기관의 프로젝트에서는 반드시 이 2개의 암호화 알고리즘중 한개를 선택해서 사용해야 합니다.

그러나 ARIA에 비해 SEED는 속도가 매우 느립니다. 아마도 먼저 확실하진 않지만 개발되었기에 그렇겠죠?

그렇기에 복호화가 가능한 암호화를 하기 위해서는 ARIA 알고리즘을 써야 합니다.

복호화가 불가능한 HASH 알고리즘은 비밀번호나 주민등록번호 처럼 복호화가 불가능한 데이터에 사용되어 지죠.

MSDN에 의하면 MD5보다는 SHA1이 보안이 강화되었으며 SHA1 보다는 SHA256이 보안이 더 강화되었읍니다.

이미 MD5는 수십년전에 깨진 암호화 알고리즘이며 SHA1 또한 십수년 전에 깨진 알고리즘입니다.

알아서 잘 선택하기 바랍니다.

이제 다시 코드로 돌아 와서 ...지원하는 타입은 아래와 같습니다.

/// 
/// 암호화 타입 Ver 1.0
/// 
/// 
/// 2008.07.08 - ProtoType - 이방은(www.bangsil.net)
/// 
public enum SecurityType
{
    /// 
    /// 아리아 알고리즘입니다.
    /// 
    AriaAlgorithm = 0,
    /// 
    /// 시드 알고리즘입니다.
    /// 
    SeedAlgorithm,
    /// 
    /// 128비트 MD5 알고리즘입니다.
    /// 
    MD5,
    /// 
    /// 128비트 SHA1 알고리즘입니다.
    /// 
    SHA1,
    /// 
    /// 256비트 SHA256 알고리즘입니다.
    /// 
    SHA256
}

암호화를 하기 위해서는 SecuirtyProviderBase 라는 팩토리 클래스를 이용합니다.

각 암호화 클래스의 인스턴스는 이 팩토리 클래스의 CreateInstance 메서드를 통해서만 얻을 수 있습니다.

public static SecurityProviderBase CreateInstance(SecurityType sType, int keySize)
{
    if (sType == SecurityType.AriaAlgorithm)
    {
        if (keySize != 128 && keySize != 192 && keySize != 256)
        {
            throw new ArgumentOutOfRangeException(string.Format
(CommonLocalizedEnumConverter.ConvertToString(ExceptionMessage.OutOfRange)
, keySize.ToString()));
        }
    }
    switch (sType)
    {
        case SecurityType.AriaAlgorithm:
            SecurityProviderBase p = new AriaProvider(keySize);
            p.keySize = keySize;
            return p;
        case SecurityType.SeedAlgorithm:
            return new SeedProvider();
        case SecurityType.MD5:
            return new HashProvider(SecurityType.MD5);
        case SecurityType.SHA1:
            return new HashProvider(SecurityType.SHA1);
        case SecurityType.SHA256:
            return new HashProvider(SecurityType.SHA256);
        default:
            return null;
    }
}

ARIA 알고리즘을 제외하고는 keySize가 필요치 않습니다. 이에 keySize가 없는 메서드도 overload 되어 있습니다.

ARIA 알고리즘은 블럭암호화 알고리즘이며 MASTER KEY 라는 것이 필요합니다. 이 키값은 매우 중요한 값이며 키값이 노출되면 복호화가 가능하게 됩니다.

어쨋든 이 키값을 생성하기 위한 메서드는 CreateMasterKey 라는 메서드입니다.  입력받은 문자열을 인코딩하여 키값을 생성합니다.

이 메서드를 호출하지 않으면 임의로 마스터키를 생성합니다만 직접 생성하기를 권합니다.

이제 암호화 복호화 메서드가 존재합니다.

이 메서드는 각각 2개씩 존재합니다. 인풋 매개변수의 형식 및 리턴 형식이 String 인 메서드와 byte[]  인 메서드가 존재합니다.

 public string EncryptToString(string inputString) 와 public byte[] EncryptToByteArray(string inputString) 은 암호화 메서드가 되겠고
public string DecryptFromString(string inputString) 와 public string DecryptFromByteArray(byte[] inputByteArray) 는 복호화 메서드가 되겠습니다

각각 상황에 맞게 사용하면 되겠네요.

사용법은 너무나 간단합니다.

SecurityProviderBase security=  SecurityProviderBase.CreateInstance(SecurityType.AriaAlgorithm, 128);
security.CreateMasterKey("마스터키");//생략 하면 기본 설정됨.
string 암호화된문자열 = security.EncryptToString("암호화할 문자열");

 

PS : 삽질전문개발자 님 감사합니다.


마지막 업데이트 : (6/14/2011 7:10:02 PM)




첨부 파일 보기 (1)
Trackback 보기 (0)
댓글 보기 (6)
삽질전문개발자님의 글 (6/13/2011 11:07:28 PM)
분문 중 "ARIA 알고리즘과 SEED 알고리즘은 우리나라 표준 알고리즘이며 공개키 기반 블럭암호화 알고리즘입니다."

ARIA와 SEED는 대칭키(비밀키) 블럭 암호화 알고리즘이며, 공개키 기반 암호화라 함은 비밀키/공개키의 키 쌍을 갖는 암호화 방법을 뜻합니다. 즉, 본문의 표현을 인용하여 이야기하면 '마스터키' 방식의 암호화는 공개키 기반 암호화 알고리즘일 수 없습니다.

* 기술 블로그의 부정확한 내용은 후학들과 대중에게 불량 씨앗을 나눠주는 것과 같습니다. 본문을 정정하시면 이 댓글은 삭제하셔도 무방합니다



방실이님의 글 (6/14/2011 7:08:17 PM)
대칭키이군요..^^; 감사합니다.



이세기님의 글 (9/26/2011 8:13:50 PM)
정말 난감했는데 많은 도움이 되었습니다 감사합니다.



방실이님의 글 (9/27/2011 2:18:05 PM)
감사합니다..^^



고은애님의 글 (8/8/2012 2:01:21 PM)
감사합니다^^



김성수님의 글 (7/16/2013 10:23:04 PM)
좋은 공부가 되었습니다. 감사합니다.



댓글 쓰기

RPNetworks.Resources - 03

현재 주소 복사
트랙백 주소 복사
방실이님의 글 (1/4/2011 11:59:35 AM) Viewing : 2042

마지막글이 되겠네요.

리소스 작업을 하다 보니까 자주 쓰이는 것들이 눈에 띄게 되었습니다.

첫 글에도 언급했듯이 대부분 인증관련 내용이나 게시판 관련 내용이 되겠습니다.

자주쓰는 TEXT 를 미리 리소스로 만들어 놓으면 사용하기에 참 용이할 것 같다는 생각이 들었습니다.

그러나 이 구조는 단위 네임스페이스당 하나의 리소스 형식이라 공용으로 뽑기에는 코드를 좀 수정해야 했죠.

어쨋든 그래서 생성한 클래스가 CommonLocalizedEnumConverter 입니다.

namespace RPNetworks.Resources 
{ 
    public class CommonLocalizedEnumConverter : ResourceEnumConverter 
    { 
        public CommonLocalizedEnumConverter(Type type) 
            : base(type) 
        { 
            base.ResourceManager = new CustomResourceManager(ResourceType.String).ResourceManager; 
        } 
    } 
}

네임스페이스를 보면 알겠지만 이 클래스는 ResoruceEnumConverter를 상속 받았지만 네임스페이스는 현재 위치 그대로 입니다.

그리고 자주 쓸만한 열거형을 모아서 한번 만들어 보았습니다.(근데 이게...참 까탈스럽더군요..ㅡ.ㅡ;;;;)

AuthMessage 나 BoardMessage 같은 열거형이 바로 그것입니다.

이것을 사용하기 위한 방법은 아래 코드와 같습니다.

this.lblCommon.Text = CommonLocalizedEnumConverter.ConvertToString(BoardMessage.BoardCreated);

뭐 별거 없네요..ㅋ~

샘플을 한번 만들어 보았습니다..

아주..귀찮네요..ㅡ.ㅡ;;;;; 그래도 글빨이 안서는 지라.....


마지막 업데이트 : (1/5/2011 5:09:08 PM)




첨부 파일 보기 (1)
Trackback 보기 (0)
댓글 보기 (0)
댓글 쓰기



<< < 1 2 3 4 5 6 7 8 9 10 > >>