SEED 암호화 컴포넌트 ECPlaza.Seed 소스 공개

한국정보진흥원(KISA)의 SEED 암호알고리즘을 ASP에서 사용하기 위해서 만든 ECPlaza.Seed 컴포넌트의 소스를 공개합니다. 이 컴포넌트는 ANSI X.923 패딩을 사용했고, BASE64 인코딩 절차를 한번 더 거쳤습니다.

사용법은 간단합니다.

ECPlazaSeed.dll을 다운로드 받은 다음 적당한 폴더에 복사한뒤 관리자 권한으로 도스창을 실행시켜서

regsvr32 ECPlazaSeed.dll

64bit OS에서는

c:\windows\syswow64\regsvr32 ECPlazaSeed.dll

을 하면 컴포넌트 등록이 끝납니다.

등록 확인은 테스트 스크립트를 다운 받아서

cscript test.vbs

64bit OS에서는

c:\windows\syswow64\cscript test.vbs

를 도스창에서 실행해서 오류가 발생하지 않으면 제대로 등록이 된 겁니다.

이 컴포넌트는 두개의 메쏘드를 제공합니다.

  • Encrypt(sPlainText, sKey)

    sPlainText 평서문을 sKey를 가지고 SEED 암호화 및 Base64 인코딩한 결과를 반환합니다. sKey는 반드시 16자리여야만 합니다.

  • Decrypt(sCipherText, sKey)

    sCipherText 암호문을 Base64 디코딩을 하고, SEED 복호화를 거쳐서 원 평서문을 반환합니다.

사용 예제

Dim oSeed
Dim encdata, decdata
Set oSeed = Server.CreateObject("ECPlaza.Seed")
encdata = oSeed.Encrypt(data, userkey)
decdata = oSeed.Decrypt(encdata, userkey)

소스를 컴파일 하기 위해서는 Visual C++ 6가 필요합니다. Visual Stuio .Net에서는 컴파일 해보지 않았습니다. 아마 컴파일이 안 될것 같습니다.

소스 다운로드

DLL 다운로드

테스트 스크립트 test.vbs

참고:

한국정보진흥원 SEED 알고리즘

SEED 알고리즘 – Java API
Seed알고리즘을 이용한 암호화 복호화 기능 수행하는 DLL 만들기

11 thoughts on “SEED 암호화 컴포넌트 ECPlaza.Seed 소스 공개”

  1. 안녕하세요 Seed 알고리즘 소스를 찾아서 리버님의 홈피까지 왔습니다. ^^
    지금 현재 제가 나가있는 사이트에는 리버님의 ECPlazaSeed 을 이용해서 암호화가 구축되어 있습니다. 요즘 현업의 요구사항이 있어서 이 암호화를 .NET 으로 구현된 프로그램에도 적용해야 되는 상황이 되었습니다.
    또 여러가지 이유로 c로 구현된 ECPlazaSeed 를 이용할수가 없어서 .NET 으로 재 작성해야되는 상황이구요. 리버님 혹시 .NET으로 구현해 놓은 ECPlazaSeed는 없나요?
    http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=217&MAEULNO=8&no=20472&page=7
    위의 링크에서 C# 으로 된 SEED 소스를 구했지만 Encryption 하면 리버님 모듈과 다른 결과가 나오네요
    (Padding 을 수정해도 잘 안되네요)
    제가 C 는 잘 몰라서 이렇게 도움을 청합니다.
    .NET 모듈로 구현한 ECPlazaSeed 가 있으면 좀 보내주세요 음 그것이 안된다면 위 링크의 소스가 왜 리버님 모듈과 다른 지 이유 좀 알려주세요 ㅜ.ㅜ

    오늘도 좋은 하루 되세요~~

    – 개발자 이승대 ( mailto : seungdae@hanmail.net )

    1. .NET으로 구현된 ECPlazaSeed는 없습니다. 안타깝게도 제가 .NET을 몰라서 바로 도움을 드릴 수가 없을 것 같습니다. 그래도 소스를 한번 비교해 보도록 하겠습니다. 회사일이 바빠서 시간은 좀 걸릴 것 같습니다.

  2. 제가 Com은 초보라서 정말 좋은 소스를 보여주셔도 불러올수가없네요
    Visual C++ 6에서 작업중인데 불러오는 방법좀 알려주실수있으신지요
    클레스위자드에서 불러왔는데 이런식으로 사용하는게 아닌가요 다른방법으로 불러와야될런지요
    ISeed nSeed;
    CString sKey,sSrc;
    CString sTemp,sTemp2;
    sKey = “1234567890123456”;
    sSrc = “this is a test.”;
    sTemp = nSeed.Encrypt(sSrc,sKey);
    sTemp2 = nSeed.Decrypt(sTemp,sKey);

    이상태로 하면 OutPut창에
    Warning: attempt to call Invoke with NULL m_lpDispatch! 이렇게 나옵니다.

  3. 안녕하세요.. 제가 이번 프로젝트에서.. 리버님의 ECPlazaSeed를 사용을 하고 있는데요..
    이게 지금까지 잘 되다가 갑자기 Server.CreateObject 실패 에러를 띄우면서 안되네요..
    이번이 두번째 인데요.. 처음엔 테스트 서버의 문제인가 싶어서 테스트 서버도 옮겨봤는데.. 옮긴 후 역시 잘 되다가 이틀만에 또 같은 에러를 띄우네요..

    근데 재밌는건.. test.vbs 파일로 command 상에서 실행을 하면 여전히 잘 된다라는거에요..

    dll 등록은 regsvr32 로 했구요.. 파일은 C:\Windows 에 뒀답니다.

    이것의 실패 원인이 뭘까요..? 곧 실서버 포팅을 앞두고 있는데.. 갑자기 이런 일이 생겨서 너무 당황스러워요.. ㅜ,ㅜ
    만일 실서버에서도 이런 일이 벌어지면 더 큰일이 생기겠지요;;;

    부디 .dll 상에는 아무런 문제가 없다고 해주세요.. 그리고.. 이 에러가 한 번 나고난 뒤에는..
    regsvr32 /u c:\Windows\ECPlazaSeed.dll 후에.. 다시 regsvr32 를 해도 계속 같은 에러 메세지를 띄우네요..

    하도 안되서리.. 관리도구의 구성요소 서비스에까지 등록을 해서 해봤는데도 안되구.. regedit에서 ecplaza 로 들어가있는 모든 값들을 지우고 재부팅하고 파일을 재설치 후.. 시도를 해도 안되고.. ㅜㅜ

    아.. 제발 좀 도와주세요.. ㅜ,ㅜ

    혹 몰라서 메일 주소도 남겨봅니다.. (mailto : maricom@hanmail.net)

  4. ASP에서 암호화 컴포넌트인 ECPlazaSeed.dll를 사용하고 있습니다.
    그런데 아래와 같은 에러가 나오면서 ECPlazaSeed.dll이 더이상 실행되지 않습니다.

    에러코드
    Microsoft VBScript 오류 ‘800a01fb’

    예외 사항 발생: ‘oSeed.decrypt’

    /log/new_log.asp, 줄 40

    복호화 소스

    id = Trim(request(“id”))

    userkey = “1234567890123456”
    Set oSeed = Server.CreateObject(“ECPlaza.Seed”)

    id = oSeed.decrypt( id, userkey )

    Set oSeed = Nothing

    그래서 레지스트리에 등록 삭제후 재등록 한후에 iisreset를 하면 다시 실행되고 있는데,
    도저히 어떤 현상으로 이런 에러가 반복적으로 발생하는지 알수가 없네요~

    테스트로 정상적으로 암호화된 문자열을 변형해서 테스트 한 경우 위와 같은 에러가 발생하면서 dll이 작동을 멈추는것 같습니다.

    답변 부탁드리겠습니다.

    개발자 박주현 (mailto:zzuzzuba74@naver.com)

  5. TX :07E0 02 27 01 FF FF FF FF FF
    RX :07E8 04 67 01 “E9 9E” 00 00 00 (E9 9E 물어봅니다)
    TX: 07E0 04 27 02 “8B 9F” FF FF FF (E9 9E 값을가지고 특정 알고리즘에 의해 8B 9F생성 )
    RX :07E8 03 67 02 34 00 00 00 00

    알고리즘을 풀수 있는 방법이 없을까요??
    회사에서 진행하는 일입니다.

    풀수있다면 꼭 사례 하겠습니다.

    rmagksdnr@hanmail.net

  6. 안녕하세요. 리버님이 만드신 컴포넌트를 ASP 사용하려구 합니다.
    그런데 리버님이 만드신 컴포넌트는 BASE64 인코딩/디코딩을 거치는데 이 과정만 빼고
    SEED 복호화만 시키는 DLL파일을 얻을 수 없을까요…?; 제가 C/C++ 개념이 없어서…;
    제 메일은 kus5654@hotmail.com 입니다. 답변 주시면 감사하겠습니다.
    그럼 수고하세요.

  7. 안녕하세요.
    보내 주신 파일 잘 받았습니다. 정말 감사드리고요
    그런데 그 파일에 문제가 있는것 같습니다. 제가 메일로 에러 캡쳐해서
    다시 보내드렸습니다. 확인해 보시고 다시 보내주시면 정말 감사하겠습니다..^^:
    부탁 드리겠습니다.

  8. ASP에서 암호화 컴포넌트인 ECPlazaSeed.dll를 사용하고 있습니다.
    그런데 아래와 같은 에러가 나오면서 ECPlazaSeed.dll이 더이상 실행되지 않습니다

    박주현님께서 작성해주신 부분처럼 이상현상으로 인해 머리아픈일이 발생하고 있습니다.
    혹시 해결방안을 찾으셨다면 답변 부탁드립니다.

    권순현 : kmlkkwon@gmail.com

  9. 안녕하세요 제가 지금 사이트를 asp에서 닷네으로 변경하는 프로젝트를 하고 있습니다. 현재 ECPlazaSeed로 암호화가 되어 있어서 닷넷 버전으로 된 dll이나 방법이 없나하여 문의를 드립니다.
    혹시 .net 으로 구현된 ECPlazaSeed를 구할수 없을까요??

Leave a Reply to 강의성 Cancel reply

Your email address will not be published. Required fields are marked *