Notice
Recent Posts
Recent Comments
Link
투케이2K
117. (LINUX/리눅스) [쉘 스크립트 / Shell script] : openssl 사용해 AES128 CBC 복호화 수행 - aes128 decode 본문
Linux (cmd)
117. (LINUX/리눅스) [쉘 스크립트 / Shell script] : openssl 사용해 AES128 CBC 복호화 수행 - aes128 decode
투케이2K 2024. 8. 9. 19:06[개발 환경 설정]
사용 툴 : 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 128 기준 : key = 16 바이트 / iv = 16 바이트]
# --------------------------------------------------
# [주의점 : string 값을 >> hex 값으로 변환 및 지정이 필요]
# --------------------------------------------------
# [string : 0123456789abcdef >> hex : 30313233343536373839616263646566]
# --------------------------------------------------
key="30313233343536373839616263646566"
iv="30313233343536373839616263646566"
# [복호화를 수행할 데이터 지정]
data="MOfLtxzZ0YgS4+5cPylFYw=="
# [openssl : aes 복호화 수행]
decode=$(echo ${data} | openssl enc -aes-128-cbc -d -a -K ${key} -iv ${iv})
#[로그 출력 수행]
echo ""
echo "-------------------------------------------"
echo "key :: ${key}"
echo "-------------------------------------------"
echo "iv :: ${iv}"
echo "-------------------------------------------"
echo "data :: ${data}"
echo "-------------------------------------------"
echo "decode :: ${decode}"
echo "-------------------------------------------"
echo ""
# [END] ---------------------------------------------------
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [결과 출력]
# ------------------------------------------------------------------------------------------------
$ ./test.sh
-------------------------------------------
Hello Linux Shell Script
-------------------------------------------
-------------------------------------------
key :: 30313233343536373839616263646566
-------------------------------------------
iv :: 30313233343536373839616263646566
-------------------------------------------
data :: MOfLtxzZ0YgS4+5cPylFYw==
-------------------------------------------
decode :: hello
-------------------------------------------
# ------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------
# [AES 참고 사이트]
# ------------------------------------------------------------------------------------------------
# [온라인 AES 인코딩 및 디코딩]
https://www.devglan.com/online-tools/aes-encryption-decryption
# [string to hex 변환 사이트]
https://string-functions.com/string-hex.aspx
# [aes 128 디코딩 참고 사이트]
https://blog.naver.com/kkh0977/223437102483
# ------------------------------------------------------------------------------------------------
반응형
'Linux (cmd)' 카테고리의 다른 글
Comments