본문 바로가기
  • Survival Plan
개발 이야기/Python

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

by IT/머신러닝 엔지니어의 독서/경제/육아 공부 리치윈드 - windFlex 2020. 3. 10.

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

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

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

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

 

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

 

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

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

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

 

 

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]

댓글0