Notice
Recent Posts
Recent Comments
Link
투케이2K
118. (LINUX/리눅스) [쉘 스크립트 / Shell script] : openssl 사용해 AES192 CBC 암호화 수행 - aes19 본문
Linux (cmd)
118. (LINUX/리눅스) [쉘 스크립트 / Shell script] : openssl 사용해 AES192 CBC 암호화 수행 - aes19
투케이2K 2024. 8. 12. 18:54[개발 환경 설정]
사용 툴 : Putty
OS : LINUX
[소스 코드]
# ------------------------------------------------------------------------------------------------
# [쉘 스크립트 / Shell script 설명]
# ------------------------------------------------------------------------------------------------
1. 쉘 스크립트 는 Shell 이나 command line 인터프리터에서 구동되도록 작성된 스크립트입니다.
2. 윈도우 배치 파일 (.bat) 개념과 비슷하며, 쉘 스크립트 동작으로 정의 된 명령이 자동으로 수행됩니다.
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [사전) 쉘 스크립트 파일 생성 및 권한 설명 참고 사이트]
# ------------------------------------------------------------------------------------------------
https://blog.naver.com/kkh0977/222808230519?trackingCode=blog_bloghome_searchlist
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [openssl 암호화 옵션 참고]
# ------------------------------------------------------------------------------------------------
enc : 암호화 방식
-a : base64 암호화 사용
-K : Key 값 입력 (대문자 주의)
-iv : IV 값 입력
-e : 암호화
-d : 복호화
-in : 입력 파일
-out : 출력 파일
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [소스 코드]
# ------------------------------------------------------------------------------------------------
#!/bin/sh
# [START] --------------------------------------------------
echo ""
echo "-------------------------------------------"
echo "Hello Linux Shell Script"
echo "-------------------------------------------"
echo ""
# --------------------------------------------------
# [변수 선언] : [주의 점] : = 등호 기준 앞뒤로 공백이 없어야합니다 (변수 지정시)
# --------------------------------------------------
# [openssl 명령어 사용 도움말 확인] : $ openssl help
# --------------------------------------------------
# --------------------------------------------------
# [key , iv 변수 값 지정] : AES 192 기준 : key = 24 바이트 / iv = 16 바이트]
# --------------------------------------------------
# [주의점 : string 값을 >> hex 값으로 변환 및 지정이 필요]
# --------------------------------------------------
# [string : 0123456789abcdef01234567 >> hex : 303132333435363738396162636465663031323334353637]
# --------------------------------------------------
key="303132333435363738396162636465663031323334353637"
iv="30313233343536373839616263646566"
# [암호화를 수행할 데이터 지정]
data="hello"
# [openssl : aes 암호화 수행]
encode=$(echo -n ${data} | openssl enc -aes-192-cbc -e -K ${key} -iv ${iv} -a -A)
#[로그 출력 수행]
echo ""
echo "-------------------------------------------"
echo "key :: ${key}"
echo "-------------------------------------------"
echo "iv :: ${iv}"
echo "-------------------------------------------"
echo "data :: ${data}"
echo "-------------------------------------------"
echo "encode :: ${encode}"
echo "-------------------------------------------"
echo ""
# [END] ---------------------------------------------------
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [결과 출력]
# ------------------------------------------------------------------------------------------------
$ ./test.sh
-------------------------------------------
Hello Linux Shell Script
-------------------------------------------
-------------------------------------------
key :: 303132333435363738396162636465663031323334353637
-------------------------------------------
iv :: 30313233343536373839616263646566
-------------------------------------------
data :: hello
-------------------------------------------
encode :: IYW6eSwJzjmDBeZHnWyjgg==
-------------------------------------------
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [AES 참고 사이트]
# ------------------------------------------------------------------------------------------------
# [온라인 AES 인코딩 및 디코딩]
https://www.devglan.com/online-tools/aes-encryption-decryption
# [string to hex 변환 사이트]
https://string-functions.com/string-hex.aspx
# [aes 192 인코딩 참고 사이트]
https://blog.naver.com/kkh0977/223437393148?trackingCode=blog_bloghome_searchlist
# ------------------------------------------------------------------------------------------------
반응형
'Linux (cmd)' 카테고리의 다른 글
Comments