logo

@jihyunlab/secret-cli

@jihyunlab/secret-cli는 @jihyunlab/secret의 명령줄 인터페이스 도구입니다.
@jihyunlab/secret-cli는 텍스트와 파일뿐만 아니라 디렉터리 내의 모든 파일 또는 디렉터리 내의 모든 .env 파일들만을 암호화하는 기능을 제공합니다.
암호화된 .env 파일은 실행 시 @jihyunlab/secret에 의해 복호화 됩니다.

설치

@jihyunlab/secret-cli을 설치합니다.

npm i -g @jihyunlab/secret-cli

암호화 키

시스템이나 사용자 환경 변수에 JIHYUNLAB_SECRET_KEY를 등록하면 암호화 시 등록된 환경 변수가 암호화 키로 사용됩니다.

export JIHYUNLAB_SECRET_KEY=YourKey

사용법

$ secret help

Usage: secret [options] [command]

JihyunLab secret cli

Options:
  -V, --version                 output the version number
  -h, --help                    display help for command

Commands:
  encrypt|e [options] <target>
  decrypt|d [options] <target>
  help [command]                display help for command

Usage examples(help):
  secret encrypt -h
  secret decrypt -h

Usage examples(text):
  secret encrypt -t text
  secret decrypt -t text

Usage examples(file):
  secret encrypt -f file.txt
  secret decrypt -f file.txt
  secret encrypt -k key -f file.txt -o file_enc.txt -b

Usage examples(dir):
  secret encrypt -d dir
  secret decrypt -d dir
  secret encrypt -k key -d dir -o dir_enc -b

Usage examples(.env):
  secret encrypt -e .env
  secret encrypt -e dir
  secret encrypt -k key -e dir -o dir_enc -b

텍스트 암호화

텍스트 암호화는 입력 텍스트를 암호화하고 암호화된 16진수 문자열을 반환합니다.

$ secret encrypt -t string

text: string
encrypted: 4c6b76bdcb643c8536f9ba6f39c29d2126b2a551eac324145a2bf09409fbc4724169
text encryption success.

환경 변수의 암호화 키를 사용하는 대신 키를 직접 입력할 수 있습니다.

$ secret encrypt -k key -t string

text: string
encrypted: d00853715358ebc3ab657820b7510d02e88a38d3ac5e7c2f3578f5ef52903853d96b
text encryption success.

encrypt 명령으로 암호화된 텍스트는 decrypt 명령으로 복호화 됩니다.

$ secret decrypt -t 4c6b76bdcb643c8536f9ba6f39c29d2126b2a551eac324145a2bf09409fbc4724169

text: 4c6b76bdcb643c8536f9ba6f39c29d2126b2a551eac324145a2bf09409fbc4724169
decrypted: string
text decryption success.

파일 암호화

파일을 암호화하거나 복호화 할 때 내보낼 파일을 지정할 수 있습니다.

$ secret encrypt -f file -o file_enc

input: file
encrypted: file_enc
file encryption success.

암호화할 때 내보낼 파일을 지정하지 않으면 암호화된 결과가 기존 파일을 덮어씁니다.

$ secret encrypt -f file

input: file
encrypted: file
file encryption success.

encrypt 명령으로 암호화된 파일, 디렉터리, .env 파일은 decrypt 명령으로 복호화 됩니다.

$ secret decrypt -f file_enc

input: file_enc
decrypted: file_enc
file decryption success.

디렉터리 암호화

디렉터리를 암호화하거나 복호화 할 때 내보낼 디렉터리를 지정할 수 있습니다.

$ secret encrypt -d dir -o dir_enc

input: dir
encrypted: dir_enc\.env
encrypted: dir_enc\file
directory encryption success.

디렉터리 암호화로 .env가 포함된 디렉터리를 암호화하면 .env 파일 전체가 암호화됩니다. 전체 파일이 암호화된 경우 Dotenv가 .env 파일을 제대로 인식할 수 없습니다.
@jihyunlab/secret-cli는 별도의 .env 암호화 옵션을 제공합니다.

암호화할 때 내보낼 디렉터리를 지정하지 않으면 암호화된 결과가 기존 디렉터리를 덮어씁니다.

$ secret encrypt -d dir

input: dir
encrypted: dir\.env
encrypted: dir\file
directory encryption success.

.env 암호화

.env 암호화로 .env 파일을 암호화하면 키가 아닌 값만 암호화되므로 실행 시 dotenv의 올바른 동작이 보장됩니다.
.env 암호화는 파일이나 디렉터리 암호화와 다르게 작동합니다.

.env 파일을 암호화합니다. 단, 파일 이름은 .env로 시작해야 합니다.

$ secret encrypt -e .env

input: .env
encrypted: .env
.env file encryption success.
TEXT=d879f8dfb00b7f9d73bf755569726ed296332765988e28dda664350291f4ca382cff501e82

디렉터리 내의 모든 .env 파일을 암호화합니다. 디렉터리를 입력하면 디렉터리 내에서 .env로 시작하는 모든 파일이 암호화됩니다.

$ secret encrypt -e dir

input: dir
encrypted: dir\.env
.env directory encryption success.

암호화된 .env 파일 사용에 대한 자세한 내용은 @jihyunlab/secret 문서를 참조하세요.


.secretignore

디렉터리를 암호화할 때 .secretignore 파일에 암호화에서 제외되어야 할 파일이나 디렉터리를 지정할 수 있습니다.

/.git
/node_modules
/dist
.DS_Store
LICENSE
README.md
package.json

.secretignore가 있는 디렉터리에서 명령을 실행합니다.

$ secret encrypt -d .

라이센스

Open source licensed as MIT.

logo

ⓒ 2023. JihyunLab. All rights reserved.

info@jihyunlab.com