리눅스에서 간단히 OpenSSL로 암복호화 테스트하기
+인코딩
-base64 인코딩하기.
echo "this is a test" | openssl enc -base64
-base64 디코딩하기
echo "dGhpcyBpcyBhIHRlc3QK" | openssl enc -d -base64 this is a test
echo "dGhpcyBpcyBhIHRlc3QK" | openssl enc -base64 -d
this is a test
+ AES 256 암복호화
echo "this is a test" | openssl enc -aes-256-cbc -a
암호키 입력
출력은 base64 인코딩형태 (커맨드 마지막에 -a를 빼면 바이너리로 출력하므로 파일 리다이렉션> 으로 파일로 저장할 수도 있다.)
echo "base64 암호화값" | openssl enc -aes-256-cbc -d -a
암호키 입력
+기타 옵션
-in ; 입력 파일
-out ; 출력 파일
-a ; base64 인코딩하여 출력
-k ; 패스워드 (암복호화시 생략하면 프롬프트상에서 물어본다.)
+파일 암복호화
$ openssl enc -aes-256-cbc -salt -a -in file.txt -k school -out file.txt.enc
$ cat file.txt.enc
U2FsdGVkX19VTO6a11weGV665ZPM3sGKpZadud21IEw=
$ openssl enc -aes-256-cbc -d -a -in file.txt.enc -out file.dec
enter aes-256-cbc decryption password:
$ cat file.dec
hello
(-a를 빼면 바이너리로 데이터 생성, -k 로 패스워드 지정가능.)
+ 해시 테스트
MD5 해시값을 생성한다. 파라미터로 파일명을 주면 파일을 읽어 해시값을 생성하고, echo로 출력한 것을 pipe로 받아 해시값을 생성할 수 도 있다.
$ openssl md5 filename
$ echo "hello" | openssl md5
주의! echo로 출력시에는 마지막에 \n이 자동으로 들어간다.
이를 막으려면 -n 옵션을 echo에 추가해 주어야 한다.
$ openssl sha1 filename
$ openssl sha256 filename
'Security' 카테고리의 다른 글
DLKM 방식의 후킹 모듈 보호 메커니즘 (1) | 2015.06.07 |
---|---|
버퍼오버런(Buffer-Overrun)의 실체와 분석 (0) | 2015.06.06 |
해시(Hash) (0) | 2015.06.02 |