파이썬으로 쉽고 빠르게 인코딩 디코딩이 가능합니다.
워게임 풀때 많이 나오는 md5, sha1, base64를 다루기에 좋습니다.
hashlib이라는 모듈로 md5,sha1인코딩이 가능합니다.
예제코드.(md5)
import hashlib h = hashlib.md5() h.update('abcde') #update 안에는 인코딩할 문자열을 집어넣습니다. print h.hexdigest() #hexdigest는 우리가 익히 아는 16진수로 출력. print h.digest() #digest는 한글로 변환되어 이상하게 출력.
코딩 돌린 결과.
md5로 인코딩해주는 사이트인 http://www.md5encryption.com/ 에서 abcde를 md5로 인코딩한 결과
동일하게 나오는걸 확인할수 있겠네요.
예제코드(sha1)
import hashlib h = hashlib.sha1() #여기만 sha1로 바꿔주면 됩니다. h.update('abcde') print h.hexdigest() #마찬가지로 16진수출력 print h.digest() #마찬가지 한글로 출력..
코딩결과
%추가 : hashlib.sha1('abcde').hexdigest()이런식으로도 가능.
sha1로 인코딩해주는 사이트인 http://kr.freemd5.com/index.php#.U9iFrPl_tzs 에서 abcde를 sha1로 인코딩결과
역시 동일하게 나옵니다.
base64관련 인코딩은 base64라는 모듈로 가능합니다.
예제코드.
import base64 print base64.b64encode('abcde')
%추가 print 'abcde'.encode('base64')이런식으로도 되는듯함
코드를 짜다 보면 아시겠지만 base64는 b64encode말고도 b32encode, encodestring등 헷갈리는 메소드가 많습니다. 다른거 쓰지말고 b64encode쓰셔야 해요..
코딩결과
http://ostermiller.org/calc/encode.html 에서 base64인코딩결과도 역시 동일하게 나오는걸 확인할수 있습니다.
마지막으로, md5는 인코딩시 32자, sha1은 40자, base64는 대부분(아닐 수도 있음.) =으로 끝나니
알아두면 편할겁니다.
모듈 활용-> http://qkqhxla1.tistory.com/entry/webhackingkr-6%EB%B2%88
--------------------------------------------------------
2014-10-10 내용 추가
http://cdpython.tistory.com/16
에서 본건데 url인코딩 디코딩을 urllib.quotes, urllib.unquotes로 할수 있음.
'Python > 2.7 information' 카테고리의 다른 글
파이썬 소켓 기본. (2) | 2014.08.10 |
---|---|
파이썬 리스트 관련 (0) | 2014.08.10 |
일반적이지 않은 HTTP 요청 메소드를 보내는 방법. (0) | 2014.08.10 |
페이지 이동과 요청보내기. (0) | 2014.08.10 |
파이썬으로 로그인 구현. (0) | 2014.08.10 |