Skip to main content

이 툴로 할 수 있는 일

연동 개발 중에 “내가 만든 암호문이 맞나?”, “웹훅이 실제로 어떻게 오나?”를 확인하는 용도입니다. 코드를 짜기 전에 값만 넣어보고 결과를 눈으로 확인할 수 있습니다.

LiveForm

LiveForm URL에 넣을 파라미터를 고르면 encrypted= 값을 만들어 줍니다

Face Auth

Face Auth 전용 URL과 암호문을 만듭니다

API

17개 엔드포인트를 폼으로 호출해 보고 cURL을 복사합니다

Webhook

내 PC로 웹훅을 받아 내용을 확인하고 복호화합니다
이 툴은 개발·테스트 편의를 위한 것입니다. 입력값은 메모리에만 있고 저장되지 않으며, API KEY는 화면에서 가려집니다. 실제 서비스 로직에 포함해 사용하는 도구가 아닙니다.

다운로드

macOS 13(Ventura) 이상이 필요합니다.
1

내려받습니다

2

압축을 풉니다

EnDecryptGUI.app이 나옵니다. 응용 프로그램 폴더로 옮기면 편합니다.
3

처음 실행할 때 차단 해제

아이콘을 더블클릭하면 “확인되지 않은 개발자” 경고가 뜹니다.시스템 설정 → 개인정보 보호 및 보안을 열고 아래로 내리면 "EnDecryptGUI"을(를) 열 수 없습니다 옆에 그래도 열기 버튼이 있습니다. 한 번만 눌러주면 이후로는 바로 열립니다.

탭 전환 단축키

탭은 키보드로도 바꿀 수 있습니다. macOS 는 ⌘1⌘4, Windows 는 Ctrl+1Ctrl+4 이며 순서대로 LiveForm · Face Auth · API · Webhook 입니다. 탭 위에 마우스를 올리면 해당 단축키가 표시됩니다.
탭 단축키 표시

탭 위에 마우스를 올리면 단축키가 표시됩니다

시작하기 전에 — 두 가지만 확인

1

프로젝트 API KEY 준비

대시보드 프로젝트 관리 → 프로젝트 설정 → 연동 정보에서 확인합니다. 모든 암복호화가 이 키를 기준으로 동작합니다.
2

암호화 알고리즘 확인

대시보드 프로젝트 관리 → 보안 설정 → 데이터 보호에서 ECB 또는 GCM 중 무엇으로 설정되어 있는지 확인합니다.툴 상단의 Encryption 선택과 이 설정이 다르면 결과가 맞지 않습니다. 기본값은 ECB이며, 앱을 다시 켤 때마다 ECB로 돌아옵니다.
상단 Encryption: ECB / GCM / CBC(Webhook) 는 “어떤 방식으로 암호화할지”를 고르는 곳입니다. “암호화할지 복호화할지”를 고르는 Encrypt/Decrypt 라디오 버튼과는 다릅니다.

LiveForm 탭 — URL 파라미터 만들기

LiveForm URL에 붙일 encrypted= 값을 만드는 곳입니다.
LiveForm 탭 — 파라미터를 조립해 encrypted 값을 만듭니다

LiveForm 탭 — 파라미터를 조립해 encrypted 값을 만듭니다

1

파이프라인 선택

ID document 또는 Knowledge-based 를 고릅니다. 각각 입력값이 따로 보관되므로 오가며 작업해도 내용이 사라지지 않습니다.
2

API KEY 입력

눈 모양 버튼으로 표시·숨김을 전환할 수 있습니다.
3

Add field 로 파라미터 추가

필요한 파라미터를 하나씩 고르고 값을 넣습니다. 국가·문서종류처럼 여러 개를 고르는 항목은 고른 순서대로 쉼표로 이어집니다.
4

Encrypt parameters 클릭

오른쪽 입력칸에 encrypted= 와 URL 인코딩된 암호문이 채워집니다. 그대로 복사해 URL 뒤에 붙이면 됩니다.아래 Decryption Result 에는 방금 암호화한 원본 JSON이 보기 좋게 표시됩니다. 무엇이 들어갔는지 확인하는 용도입니다.
경고가 떠도 암호화는 됩니다. 예를 들어 selectedIdTypeselectedIssuingCountry 없이 넣으면 주의 문구가 뜨지만 그대로 암호화됩니다. 잘못된 조합도 테스트해볼 수 있게 한 것입니다.암호화가 막히는 경우는 세 가지뿐입니다 — 파라미터가 하나도 없을 때, API KEY가 비어 있을 때, 색상·날짜 형식이 틀렸을 때.

knowledgePrefill 전용 편집기

Knowledge-based 파이프라인의 knowledgePrefill 은 별도 편집기가 열립니다. name · gender · birthDate · nationality · SSN · address · phoneNumber 중에서 고르고 값을 넣으면 gender=male,birthDate=1990-01-01 형태의 문자열이 실시간으로 만들어집니다. 목록에 없는 키를 시험해보고 싶다면 Raw text 모드로 전환하면 됩니다. Fields 모드와 Raw 모드의 입력은 각각 따로 보관됩니다.
입력하지 않은 항목은 결과에서 빠집니다. 화면에 흐리게 보이는 Jane Doe 같은 값은 예시일 뿐이며, 실제로 타이핑한 값만 암호화됩니다.

오른쪽 변환기 — 값 하나만 빠르게

파라미터를 조립하지 않고 아무 텍스트나 바로 암복호화할 때 씁니다. API KEY와 입력칸만 채우면 되며, LiveForm·Face Auth 탭 모두에 있습니다. 복호화할 때는 아래 네 가지를 모두 그대로 넣어도 알아서 처리합니다.
  • 암호문 원본
  • URL 인코딩된 암호문
  • encrypted=... 형태
  • encrypted 파라미터가 들어 있는 URL 전체
GCM은 같은 값을 넣어도 매번 다른 결과가 나옵니다. 정상입니다. 보안을 위해 매번 새로운 난수를 섞기 때문입니다. 복호화하면 원래 값이 동일하게 나옵니다.

Face Auth 탭

대시보드에서 받은 Face Auth URL을 붙여 넣으면 지역이 자동으로 인식되고 pid 가 채워집니다. API KEY와 승인 완료된 sid 를 넣고 Proceed 를 누르면 최종 URL이 만들어집니다.
Face Auth 탭 — 대시보드 URL을 붙여 넣고 최종 링크를 만듭니다

Face Auth 탭 — 대시보드 URL을 붙여 넣고 최종 링크를 만듭니다

pidlang 은 암호화 대상이 아닙니다. 암호화되는 것은 sid 와 입력한 선택 항목들입니다. mainColor · innerColor 는 현재 비활성 상태로, 화면에는 보이지만 입력할 수 없고 결과에도 포함되지 않습니다.

API 탭

17개 엔드포인트를 폼으로 채워 실제로 호출해 봅니다. 왼쪽에서 주소와 API KEY를 정하고, 오른쪽에서 파라미터를 채운 뒤 Proceed 를 누릅니다.
API 탭 — 엔드포인트를 폼으로 채우고 cURL을 확인합니다

API 탭 — 엔드포인트를 폼으로 채우고 cURL을 확인합니다

  • 입력하는 동안 cURL 미리보기가 실시간으로 갱신됩니다. 복사해서 터미널에 그대로 붙여 쓸 수 있습니다.
  • 응답은 HTTP 상태·소요 시간과 함께 표시되며, JSON이면 보기 좋게 정렬됩니다.
  • 공인 IP·로컬 IP·VPN 사용 여부도 함께 보여줍니다. 접근 제한을 쓰는 프로젝트에서 유용합니다.
실제 서버로 요청이 나갑니다. 조회는 안전하지만 생성·수정·삭제 엔드포인트는 실제로 반영됩니다. 운영 프로젝트에서 시험하지 마시고, 테스트용 프로젝트를 따로 만들어 사용하세요.

안전한 데이터 전송(암호화) 사용 시

프로젝트에 안전한 데이터 전송이 켜져 있으면 Submission 관련 엔드포인트에 Encryption 체크박스가 나타납니다. 체크하면 일반 입력칸이 사라지고 data (encryption) 한 칸만 남습니다.
1

보낼 내용을 JSON으로 적습니다

2

변환기에서 암호화합니다

LiveForm이나 Face Auth 탭의 오른쪽 변환기에서 ECB로 암호화합니다.
3

data (encryption) 칸에 붙여 넣고 Proceed

암호문 원본이든 URL 인코딩된 값이든 둘 다 받습니다.
응답도 암호화되어 돌아옵니다. {"data":"...","isEncrypted":true} 형태입니다. data 값만 복사해 변환기에서 Decrypt 로 풀어 보세요.
전송 방식은 메서드마다 다릅니다. 자세한 규격은 안전한 데이터 전송 옵션을 참고하세요.

Webhook 탭 — 내 PC로 웹훅 받아보기

웹훅은 ARGOS 서버가 여러분의 서버로 결과를 보내주는 기능입니다. 그런데 개발 중인 내 PC는 인터넷에서 주소가 없어 ARGOS가 찾아올 수 없습니다. ngrok 이 이 문제를 해결해 줍니다. 인터넷에서 접근 가능한 임시 주소를 하나 만들어 주고, 그 주소로 온 요청을 내 PC로 전달해 줍니다.
이 툴은 내 PC의 8000번 포트를 사용합니다. 바꿀 수 없습니다. 아래 안내대로 하면 툴이 알아서 ngrok http 8000 을 실행해 주므로, 직접 명령어를 입력할 필요는 없습니다.
Webhook 탭 — 수신한 요청의 헤더와 본문을 확인합니다

Webhook 탭 — 수신한 요청의 헤더와 본문을 확인합니다

1단계 — ngrok 설치

터미널을 열고 Homebrew로 설치합니다.
반드시 Homebrew로 설치하세요. 이 툴은 아래 세 경로에서만 ngrok을 찾습니다.
  • /opt/homebrew/bin/ngrok
  • /usr/local/bin/ngrok
  • /opt/homebrew/opt/ngrok/bin/ngrok
홈페이지에서 직접 내려받아 다운로드 폴더나 바탕화면에 두면 툴이 찾지 못합니다. 이미 그렇게 받으셨다면 /usr/local/bin/ 으로 옮겨 주세요.

2단계 — ngrok 계정 연결 (최초 1회)

ngrok은 무료 계정이 있어야 동작합니다.
1

가입하고 토큰 복사

ngrok.com 에서 가입한 뒤 Your Authtoken 페이지에서 토큰을 복사합니다.
2

터미널에 등록

Authtoken saved 가 나오면 끝입니다. 이 과정은 컴퓨터당 한 번만 하면 됩니다.

3단계 — 서버 켜기

1

Webhook 탭에서 Start Server 클릭

툴이 알아서 8000번 포트를 열고 ngrok을 실행합니다. 몇 초 걸립니다.
2

Public URL 복사

https:// 로 시작하는 주소가 나타납니다. 옆의 Copy 버튼을 누릅니다.상태 표시가 Running 이 되고 Webhook 탭에 초록색 점이 생기면 정상입니다.
3

대시보드에 등록

프로젝트 관리 → 웹훅 설정에 복사한 주소를 붙여 넣고 저장합니다.
4

테스트

KYC를 한 건 진행하면 툴 왼쪽 목록에 요청이 바로 나타납니다. 클릭하면 오른쪽에 보낸 시각·IP·헤더·본문이 전부 보입니다.
ngrok 무료 계정의 주소는 앱을 껐다 켤 때마다 바뀝니다. 주소가 바뀌면 대시보드 웹훅 설정도 다시 넣어 주어야 합니다.

받은 내용 복호화하기

프로젝트에 안전한 데이터 전송이 켜져 있으면 본문이 암호문으로 옵니다. 본문 위의 Decrypt 버튼을 누르면 풀어서 보여 줍니다. 성공하면 Decrypted 표시가 붙고, 내용이 보기 좋은 JSON으로 바뀝니다.
Decrypt는 LiveForm 탭에 입력한 API KEY를 사용합니다. LiveForm 탭에 키를 먼저 넣어 두세요. 비어 있으면 안내 메시지가 뜹니다.또한 상단 Encryption 선택과 무관하게 항상 CBC 방식으로 풉니다. 웹훅 본문은 규격상 CBC로 암호화되기 때문입니다. 선택을 바꿀 필요가 없습니다.
Save Logs… 로 내려받은 파일에는 언제나 받은 원본이 저장됩니다. 화면에서 복호화한 내용이나 API KEY는 파일에 들어가지 않습니다.

특정 IP 차단해 보기

왼쪽 아래 IP blocking 을 펼치고 IPv4 주소를 넣으면 그 주소에서 온 요청에 403을 돌려줍니다. 목록에는 빨간색 BLOCK 항목으로 남습니다. 재시도 동작을 확인할 때 씁니다.

잘 안 될 때

대부분 알고리즘이 안 맞는 경우입니다. 대시보드 보안 설정 → 데이터 보호에서 ECB인지 GCM인지 확인하고 툴 상단 Encryption을 같게 맞춰 주세요.앱을 다시 켜면 ECB로 초기화되므로, GCM 프로젝트라면 매번 다시 골라야 합니다.알고리즘이 맞다면 API KEY를 확인하세요. 앞뒤에 공백이 섞여 들어간 경우가 많습니다. 툴은 입력한 그대로를 사용하므로 공백 하나만 달라도 결과가 달라집니다.
URL 인코딩을 두 번 하지 않았는지 확인하세요. 이게 가장 흔한 원인입니다.Convert URL 버튼의 결과는 이미 인코딩이 끝난 값입니다. 그대로 encrypted= 뒤에 붙이면 됩니다. 여기에 코드에서 encodeURIComponent() 를 한 번 더 적용하면 %2B%252B 로 변해 깨집니다.
인코딩이 잘못되어도 오류가 나지 않고 결과만 비어서 돌아올 수 있습니다. “에러는 없는데 결과가 없다”면 이 경우를 먼저 의심해 보세요.
ngrok을 못 찾는 경우 — 설치 방법을 확인하세요. macOS는 Homebrew 경로에 있어야 하고, Windows는 설치 후 앱을 다시 켜야 할 수 있습니다.인증 토큰이 없는 경우ngrok config add-authtoken 을 했는지 확인하세요.ERR_NGROK_334 가 보이는 경우 — 같은 계정으로 이미 다른 곳에서 ngrok이 돌고 있습니다. 무료 계정은 동시에 하나만 됩니다. 다른 터미널의 ngrok을 끄고 다시 시도하세요.포트 8000이 사용 중인 경우 — 다른 프로그램이 8000번을 쓰고 있습니다. 그 프로그램을 끄고 다시 시도하세요.
이미 실행 중이던 ngrok을 발견해 그대로 쓰고 있다는 뜻입니다. 정상입니다.다만 그 ngrok이 8000번 포트로 연결되어 있을 때만 가져다 씁니다. 직접 ngrok http 3000 같이 다른 포트로 띄워 두셨다면 이 툴은 그것을 쓰지 않습니다.직접 띄우실 거라면 반드시 이렇게 하세요.
이 경우 Stop Server 를 눌러도 그 ngrok은 꺼지지 않습니다. 직접 띄운 것이기 때문입니다.
  1. Public URL을 대시보드 웹훅 설정에 새로 넣었는지 확인하세요. ngrok 무료 계정은 껐다 켤 때마다 주소가 바뀝니다.
  2. https:// 로 시작하는 주소를 넣었는지 확인하세요.
  3. IP blocking에 주소를 넣어 둔 채로 잊지 않았는지 확인하세요.
압축을 폴더째 풀었는지 확인하세요. EnDecryptGUI.exe 파일만 다른 곳으로 옮기면 실행되지 않습니다. 실행 파일과 같은 폴더에 있는 DLL들이 모두 필요합니다.

참고

  • 입력값·API KEY·변환 결과는 메모리에만 있습니다. 앱을 끄면 사라지며 파일로 저장되지 않습니다.
  • LiveForm·Face Auth 탭은 네트워크를 쓰지 않습니다. 전부 내 PC에서 계산합니다.
  • API 탭과 Webhook 탭만 네트워크를 사용합니다.
  • 각 탭의 API KEY는 서로 독립적입니다. 단, Webhook의 Decrypt만 LiveForm 탭의 키를 가져다 씁니다.

암복호화 규격 자세히 보기

알고리즘·키 생성·언어별 예제 코드는 데이터 암복호화 문서를 참고하세요.