@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 파일을 암호화하면 키가 아닌 값만 암호화되므로 실행 시 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 파일에 암호화에서 제외되어야 할 파일이나 디렉터리를 지정할 수 있습니다.
/.git
/node_modules
/dist
.DS_Store
LICENSE
README.md
package.json
.secretignore가 있는 디렉터리에서 명령을 실행합니다.
$ secret encrypt -d .
info@jihyunlab.com