SOFTWARE
STRCrypt
Secure Trusted Rust Cryptography
STRCrypt는 문자열·파일·DB 컬럼 값을 암복호화하는 MIT 라이선스 라이브러리입니다. CLI, Python·Node.js·Java 바인딩과 DB SQL 함수를 제공하며 공통 암호문 형식을 사용합니다.
주요 기능
애플리케이션, 배치, DB가 서로 다른 암호화 모듈을 쓰면 한쪽에서 만든 암호문을 다른 쪽에서 복호화하지 못합니다. STRCrypt는 CLI, 언어 바인딩, SQL 함수에 같은 암호문 형식을 사용해 키와 모드가 같으면 서로의 암호문을 복호화합니다.
- 문자열·컬럼 암복호화 — 언어 바인딩과 Oracle·PostgreSQL·MySQL·MariaDB SQL 함수
- 파일 암복호화 — 큰 파일을 분할 처리
- 배치 암복호화 — 여러 레코드를 한 번의 호출로 처리
- 알고리즘 선택 — ARIA·SEED·LEA 등 8종, 모드별 허용 범위
- 암호문 호환 — 공통 암호문 형식, 복호화 시 알고리즘 자동 판별
- 일치 검색 — 암호화 컬럼의 결정적 검색 인덱스
다운로드
0.3.1 (2026-09-27) 배포본입니다. Linux x86_64·Windows x64 실행 파일과 언어 바인딩을 제공합니다. DB 연동은 Linux 전용입니다. Windows 언어 바인딩과 C 공유 라이브러리의 새 함수는 실행 미검증입니다. 버전별 변경 사항은 변경 이력에 있습니다.
0.3.0 이하의 Oracle·PostgreSQL 연동을 설치했다면 0.3.1 보안 공지의 권한 회수 조치를 적용합니다.
CLI
- strcrypt Linux 실행 파일 2.6 MB
- strcrypt.hmac Linux 손상 확인 파일 65 B
- strcrypt.exe Windows 실행 파일 2.5 MB
- strcrypt.exe.hmac Windows 손상 확인 파일 65 B
Python
- strcrypt-0.3.1-cp314-cp314-manylinux_2_28_x86_64.whl Linux wheel (Python 3.14) 1.3 MB
- strcrypt-0.3.1-cp314-cp314-win_amd64.whl Windows wheel (Python 3.14) 1.2 MB
- strcrypt-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl Linux wheel (Python 3.13) 1.3 MB
- strcrypt-0.3.1-cp313-cp313-win_amd64.whl Windows wheel (Python 3.13) 1.2 MB
- strcrypt-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl Linux wheel (Python 3.12) 1.3 MB
- strcrypt-0.3.1-cp312-cp312-win_amd64.whl Windows wheel (Python 3.12) 1.2 MB
- strcrypt-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl Linux wheel (Python 3.11) 1.3 MB
- strcrypt-0.3.1-cp311-cp311-win_amd64.whl Windows wheel (Python 3.11) 1.2 MB
- strcrypt-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl Linux wheel (Python 3.10) 1.3 MB
- strcrypt-0.3.1-cp310-cp310-win_amd64.whl Windows wheel (Python 3.10) 1.2 MB
- strcrypt-0.3.1-cp39-cp39-manylinux_2_28_x86_64.whl Linux wheel (Python 3.9) 1.3 MB
- strcrypt-0.3.1-cp39-cp39-win_amd64.whl Windows wheel (Python 3.9) 1.2 MB
Node.js
- strcrypt-0.3.1.tgz npm 패키지 (Linux·Windows 공용, 타입 정의 포함) 2.4 MB
Java
- strcrypt-0.3.1.jar JAR (Linux·Windows 공용) 13 KB
- libstrcrypt_jni.so Linux 네이티브 라이브러리 2.6 MB
- strcrypt_jni.dll Windows 네이티브 라이브러리 2.5 MB
Oracle
- strcrypt-oracle-0.3.1.tar.gz 연동 소스 (C 래퍼·Makefile·설치 SQL). Linux C 공유 라이브러리와 함께 사용 25 KB
PostgreSQL
- strcrypt-postgresql-0.3.1.tar.gz 연동 소스 (C 확장·Makefile·확장 SQL). Linux C 공유 라이브러리와 함께 사용 13 KB
MySQL·MariaDB
- strcrypt-mysql-0.3.1.tar.gz 연동 소스 (UDF·Makefile·등록 SQL, MySQL·MariaDB 공용). Linux C 공유 라이브러리와 함께 사용 14 KB
C 공유 라이브러리
- libstrcrypt.so Linux 공유 라이브러리 1.7 MB
- libstrcrypt.so.hmac Linux 손상 확인 파일 65 B
- strcrypt.dll Windows 공유 라이브러리 1.3 MB
- strcrypt.dll.hmac Windows 손상 확인 파일 65 B
- strcrypt.dll.lib Windows 가져오기 라이브러리 (MSVC 링크용) 7 KB
- strcrypt.h C 헤더 (공용) 28 KB
소스 코드
- strcrypt-0.3.1-src.tar.gz 소스 (tar.gz) 501 KB
- strcrypt-0.3.1-src.tar.xz 소스 (tar.xz) 316 KB
- strcrypt-0.3.1-src.zip 소스 (zip) 563 KB
공통
- SHA256SUMS 전체 파일 SHA-256 목록 3 KB
- LICENSE MIT 라이선스 전문 1 KB
- LICENSE-THIRD-PARTY 포함된 오픈소스 구성 요소 라이선스 고지 135 KB
파일별 SHA-256
5acdc1050e529feafbb58a333ebb3eaab34e107673fe1f7440c26f0dfb6b8b10 strcrypt e40771bfe04d5cb8eeac4165c4a1d41c11b824fb19602e74696630f18835bc4d strcrypt.hmac 8658616358f3483a0da3d19f3f855515591de99b52d289cd8bf497032c5966ed strcrypt.exe 823927850306afca2a91c16f7689f0d81786bab74b75500ff69bd905d0541a31 strcrypt.exe.hmac 25aa998ef34bbdfb2c4be17dd7bc0fb1c20bf96c52a69a9bc03e9c04e3a89339 strcrypt-0.3.1-cp314-cp314-manylinux_2_28_x86_64.whl e4fe5d52449393041a841ecce4d832f1b64f57ae10cfdaa14c3a4c1e6c02217a strcrypt-0.3.1-cp314-cp314-win_amd64.whl 8ca77f9060d1ae22b88809132ab2d5eed8525f838cd7f939268657acfef3cc40 strcrypt-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl 62a2337ae2a45b2fe643de51e9b6a961c661d642934ee8610a9ba710089ed740 strcrypt-0.3.1-cp313-cp313-win_amd64.whl cfaf28fa094e9d9262437694a5eae7e02d7e171841b00cd8ca7cd35595d8b8a7 strcrypt-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl 4532dd69de8d319eec39c6ea541544bfd9bb7a00da43b168fc71029493c4f8a5 strcrypt-0.3.1-cp312-cp312-win_amd64.whl 1b637c39c63ad96b951993809b5fa2035818fff6d97c2ddfa439145577fc778d strcrypt-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl a5d4e694e13d3c72f74d57e7dc71104173a2a529bacb5334a0f118cd74a64f3b strcrypt-0.3.1-cp311-cp311-win_amd64.whl 0912528b38b79529a35df3798ae63f48c8c81c16887f79a52b1f58b52fbddb37 strcrypt-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl a0199467b323f35d80a7e437b4726d87f6dbfe2930482683291660b191904800 strcrypt-0.3.1-cp310-cp310-win_amd64.whl 85478c6b2a5fe22312de6d7efe9acee60dcfd6cc0ca98b233365b81cf516900a strcrypt-0.3.1-cp39-cp39-manylinux_2_28_x86_64.whl 453a2b3203ce385f7ea4c7d7cced1289547f9549408b4456390583eae539a4a1 strcrypt-0.3.1-cp39-cp39-win_amd64.whl 77c4fa0da53a38240340555218d1806b581b4a39e879467e0cb07d856464d7bb strcrypt-0.3.1.tgz 866b9e7e5af1abe723b44df0740a871227e5d61230cdc6483b38f1f568770333 strcrypt-0.3.1.jar 1a6f47a95cdd9e6c8ba3ee5fb55ad0f82f3081ed2e8e3716a990db622d74be6b libstrcrypt_jni.so 8357b7b9a391bda4755bea19fed92622fab4c943048d8357e0bfc195150b6a5d strcrypt_jni.dll fcc558cd7eeaa972651b3a4f976e78199a66d4bbade0d696d7badd693505bcff strcrypt-oracle-0.3.1.tar.gz ee7c538f306f3f816fa32d5b2ae04be32dd3aa3edb824fa16c4b659083e656e0 strcrypt-postgresql-0.3.1.tar.gz 14a73d4b20240910b4d1b5cb49b053023c0ee401080a63067a949795b9eed541 strcrypt-mysql-0.3.1.tar.gz 9fe980205265939e321abce976faedd77441dec9b1fc5863ae52ad3fa09142cd libstrcrypt.so 5309b16947e4930a5e49ffca09e964d37355e4d20187029c21927eaafdf0ea18 libstrcrypt.so.hmac 4db8a506dce1afd63f4a9fbcab1fd1ab53068bf1c58eb5acfc4ee7231f8f06a7 strcrypt.dll 80bddda42cb2b0e28ab6373b7346df30d80885d59871ee1ae3b9622353b200a8 strcrypt.dll.hmac 40a0ec7918ee503e517d9fa7620e3c95e8a68a123fcdbc46f61b6ea0d0a62bbd strcrypt.dll.lib f9fd47a59da97482976dbd641659add955a414369592df70b18d2a0adb8aed56 strcrypt.h 21efc5355b0816b93643600c13a7a7c0154672d43abc13c35e7b2c9e09b396fe strcrypt-0.3.1-src.tar.gz a72581d68b6be4eb591f5b5e1f68520eb34c86b393157fe2100b5b4c3eb9a064 strcrypt-0.3.1-src.tar.xz 517db1aafe05de8c90e9bb200a8264bbb00a0db4ad128e993dd2e52956ae0086 strcrypt-0.3.1-src.zip 80fba723f2edd01f683ef2192a21bf195269d86265917b70e49d79afabe51ba9 LICENSE b0fc866c89d2e063cac6c0875e8af36448661cfd04d9adb490ffd5956f1247c0 LICENSE-THIRD-PARTY
체크섬 검증 (다운로드 디렉토리에서 실행)
Linux (bash)
sha256sum -c --ignore-missing SHA256SUMSWindows (PowerShell)
Get-Content SHA256SUMS | ForEach-Object {
$hash, $name = $_ -split '\s+', 2
if (Test-Path $name) {
if ((Get-FileHash $name -Algorithm SHA256).Hash -eq $hash) { "$($name): OK" } else { "$($name): FAILED" }
}
}
실행 파일·공유 라이브러리는 첫 초기화 시 .hmac 파일로 손상을 검사합니다. 파일이 없으면 검사를 생략합니다.
Windows 실행 파일·DLL은 Authenticode 미서명입니다. SmartScreen 경고가 발생할 수 있으며 서명된 코드만 허용하는 환경에서는 실행이 제한됩니다.
빠른 시작
- 다운로드에서 운영체제·호출 방식에 맞는 파일을 받고 SHA-256을 확인합니다.
- 키 파일을 만들고 환경 변수
STRCRYPT_KEY_FILE에 경로를 지정합니다. - 사용 가이드의 설치 절차와 암복호화 예제를 실행합니다.
키 파일 생성
Linux (bash)
(umask 077; openssl rand -base64 32 | head -c 32 > strcrypt.key)
export STRCRYPT_KEY_FILE="$PWD/strcrypt.key"Windows (PowerShell)
$key = Join-Path $PWD 'strcrypt.key'
$bytes = [byte[]]::new(24)
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
[IO.File]::WriteAllText($key, [Convert]::ToBase64String($bytes))
icacls $key /inheritance:r /grant:r "$($env:USERNAME):F"
$env:STRCRYPT_KEY_FILE = $key
Linux 키 파일 권한은 0600이 필요합니다. Windows는 파일 권한을 검사하지 않으며, 예제의 icacls 명령으로 접근을 현재 사용자로 제한합니다.
STRCRYPT_KEY에 키를 직접 지정할 수 있지만 프로세스 정보에 노출될 수 있어 키 파일을 권장합니다.
키는 첫 암복호화 시 한 번 읽습니다. 교체 후에는 프로세스를 다시 시작합니다. 키 분실 시 복호화할 수 없으므로 키를 별도로 백업합니다.
예제는 base64 문자 32개(192비트 난수)를 생성하며 파일 내용을 그대로 키 바이트로 사용합니다. SEED-128-GCM·LEA-128-GCM·AEGIS-128L·ASCON-128은 앞 16바이트(96비트 난수)를 사용합니다. 기본 알고리즘은 ARIA-256-GCM입니다.
사용 가이드
알고리즘과 동작 모드
기본 모드 korean-standard는 ARIA·SEED·LEA를 허용하며 기본 알고리즘은 ARIA-256-GCM입니다.
non-approved는 8종을 허용하며 기본 알고리즘은 AEGIS-128L입니다. 복호화 시 알고리즘은 암호문 헤더에서 자동 판별합니다.
| 알고리즘 | 식별자 | 표준 | 사용 가능한 모드 |
|---|---|---|---|
| ARIA-256-GCM | aria256gcm | 국내 표준 | korean-standard 기본값 |
| SEED-128-GCM | seed128gcm | 국내 표준 | korean-standard |
| LEA-128-GCM | lea128gcm | 국내 표준 | korean-standard |
| AEGIS-128L | aegis128l | IETF CFRG 초안 | non-approved 기본값 |
| AEGIS-256 | aegis256 | IETF CFRG 초안 | non-approved |
| AES-256-GCM | aes256gcm | NIST | non-approved |
| AES-256-GCM-SIV | aes256gcmsiv | RFC 8452 | non-approved |
| ASCON-128 | ascon128 | NIST SP 800-232 (Ascon-AEAD128) | non-approved |
모드는 CLI에서 --mode non-approved, 라이브러리에서는 환경 변수 STRCRYPT_MODE=non-approved로 바꿉니다.
korean-standard는 알고리즘 허용 범위를 나타내며 KCMVP 인증을 의미하지 않습니다.
폐기 예정인 kcmvp-approved도 같은 모드로 처리합니다.
일치 검색 인덱스
strcrypt_search_index는 마스터 키와 입력값으로 16진수 64자의 결정적 인덱스를 생성합니다.
SQL 함수와 Python·Node.js·Java 바인딩이 같은 결과를 반환합니다. 인덱스를 별도 컬럼에 저장하고 검색값의 인덱스와 비교해 일치 검색합니다.
인덱스 계산에는 마스터 키가 필요합니다. 동일한 값은 같은 인덱스를 가지므로 값의 일치 여부와 빈도가 노출됩니다.
시스템 요구 사항
- 운영체제
- Linux x86_64, glibc 2.28 이상 (예: RHEL·Rocky Linux 8, Debian 10, Ubuntu 20.04 이상) / Windows 10·11 x64
- CLI
- 추가 설치 없음 (Windows VC++ 재배포 패키지 불필요)
- Python
- 3.9~3.14
- Node.js
- 18 이상
- Java
- 11 이상
- Oracle
- 19c·26ai, Oracle Linux 8 이상(glibc 2.28 이상) Linux DB 서버, DB 문자집합 AL32UTF8. 공개 배포 파일은 Oracle Linux 7에서 로드되지 않음
- PostgreSQL
- Linux DB 서버의 18, 데이터베이스 인코딩 UTF8
- MySQL
- Linux DB 서버의 8.4, 문자셋 utf8mb4
- MariaDB
- Linux DB 서버의 11.8, 문자셋 utf8mb4
- 키
- 1~32바이트, 32바이트 미만은 0 패딩. 기본 모드 최소 16바이트. 아래 예제는 32바이트 키 파일 생성.
소스 코드
소스에는 코어 라이브러리, Python·Node.js·Java 바인딩, DB 연동 C 래퍼와 설치 SQL이 포함됩니다.
Linux 배포본은 rust-toolchain.toml과 Cargo.lock으로 빌드 환경과 의존성 버전을 고정합니다.
ZIP·tar.gz·tar.xz는 같은 소스이며 시험 코드·내부 문서·Windows 정적 C 런타임 빌드 설정은 제외합니다.
제한 사항 및 라이선스
- KCMVP 등 공식 보안 인증을 받은 암호모듈이 아닙니다. 검증필 암호모듈이 필요한 환경에는 맞지 않습니다.
- 키 보관·백업·교체는 호출 애플리케이션에서 관리합니다. 키 분실 시 암호문을 복구할 수 없습니다.
- 암호문은 STRCrypt 전용 형식입니다. 다른 암호 라이브러리와 직접 호환되지 않습니다.
- MIT 라이선스로 무료 제공하며 상업적 사용과 재배포가 가능합니다. 보증은 제공하지 않습니다(LICENSE).
- 배포 바이너리에 포함된 오픈소스 구성 요소와 각 라이선스는 LICENSE-THIRD-PARTY에 있습니다. 모두 MIT·Apache-2.0·BSD·ISC 계열이며, GPL 계열 구성 요소는 없습니다. Windows 배포본은 Microsoft C 런타임을 정적 링크합니다.
- 보안 수정은 최신 릴리스에만 제공합니다. 이전 버전의 취약점은 최신 버전으로 올려 해결합니다.
- 보안 취약점은 문의 양식의 "보안 취약점" 유형으로 신고합니다. 영향 버전·실행 환경·재현 절차를 포함하며 재현 방법은 공개하지 않습니다.
- 오류·기능 요청은 문의 양식으로 접수합니다.