상세 컨텐츠

본문 제목

[Python] 파일 해쉬 (hash) 및 Strings 기능

개발 이야기/Python

by 리치윈드 - windFlex 2020. 3. 10. 15:02

본문

반응형

 

파이썬 해쉬 라이브러리

업무를 하다가 누군가 보안 관련 문의를 해 온적이 있었다. 

암호 및 주요 민감 정보는 암호화를 하는 것이 아니라 HASH를 해야 한다고 답변을 해준 적이 있었는데,

특히, SHA-1 이상 SHA-256을 사용하면 좋다는 가이드를 해 주었다. 

그랬더니, HASH 를 어떻게 하냐고 묻더라... ㅜ_ㅜ

 

그래서 아래처럼 간략히 코딩해서 참고만 하라고 보내준 적이 있었는데, 기억이 남아서 기록해 둔다. 

 

좀 시간이 지난 이야기라서 이제는 해쉬라이브러리가 각 언어에서 일반화 되었지만, 

사람이 모든것을 기억하고 살기에는 뇌용량이 아깝다. 

기억할 필요 없는 것은 좀 적어두고 살자... ^^;;;

 

파이썬 코딩 도장, 길벗 혼자 공부하는 파이썬:파이썬 최신 버전 반영 파이썬 증권 데이터 분석:파이썬 입문 웹 스크레이핑 트레이딩 전략 자동 매매, 한빛미디어 모두의 데이터 분석 with 파이썬:실생활 예제로 시작하는 데이터 분석 첫걸음, 길벗

 

import sys
import hashlib
import re


def md5(in_file):
m = hashlib.md5(in_file)
return m.hexdigest()

def sha1(in_file):
m = hashlib.sha1(in_file)
return m.hexdigest()

def sha256(in_file):
m = hashlib.sha256(in_file)
return m.hexdigest()

def regex(in_pattern,in_data):
p = re.compile(in_pattern)
m = p.findall(in_data)
return m

def reg_from_file(in_pattern, in_file):
f = open(in_file,"r")
data = f.read()
return regex(in_pattern, data)



if __name__ == "__main__":
in_file = sys.argv[1]
print "MD5: ", md5(in_file),"\n"
print "SHA1: ", sha1(in_file),"\n"
print "SHA256: ", sha256(in_file),"\n"
text_list = reg_from_file('[\w\d\s]+',in_file)
if(len(text_list) !=0):
  print text_list
  #for i in range(len(text_list)):
  # print i,":", text_list[i]
반응형

관련글 더보기

댓글 영역