일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 데이터시각화
- Oracle
- not in
- 다중 JOIN
- matplotlib
- having
- 파이썬
- pandas
- MySQL
- solvesql
- SQL
- join
- PostgreSQL
- TRUNCATE
- 머신러닝
- 그로스해킹
- 프로그래머스
- GROUPBY
- SQLite
- Round
- 결측값
- 데이터리안 웨비나
- hackerrank
- SUM
- 데이터분석
- Limit
- airflow 설치
- airflow.cfg
- 전처리
- seaborn
Archives
- Today
- Total
Milky's note
[Pandas] 데이터프레임 컬럼 SHA256으로 암호화하기 본문
● SHA-256이란
SHA는 Secure Hash Algorithm를 의미하고
SHA-256은 메시지, 파일, 혹은 데이터 무결성 검증에 널리 사용되는 암호화 해싱 알고리즘(함수)이다.
변환하기를 원하는 문자들을 256 bit 길이의 key로 변환하며 SHA-256을 사용하면 문자가 조금만 바뀌어도 해시값이 완전히 변한다.
공백 하나 느낌표 하나 등만 들어가도 완전히 다른 값으로 암호화되기 때문에 원본 데이터가 중요하다.
● 사용법
import hashlib
import pandas as pd
df = pd.read_excel('hash.xlsx')
df['8digit'] = df['8digit'].astype('str').str.zfill(10)
df
우선 해시할 데이터를 불러온다.
나는 판다스를 사용해서 데이터프레임에 적용시킬 것이기 때문에 데이터 프레임을 만들어주고
끝에 8자리만 해시 해주기 위해 비어있는 자리수는 0으로 채워주기 위해 zfill 함수를 사용했다.
df["hash256"] = df['8digit'].apply(lambda x: hashlib.sha256(str(x).encode()).hexdigest()).str.upper()
df["hash512"] = df['8digit'].apply(lambda x: hashlib.sha512(str(x).encode()).hexdigest()).str.upper()
그리고 해시할 컬럼을 lambda를 이용해서 sha256 알고리즘을 적용시켜주고 데이터 프레임에 해시한 컬럼을 추가해준다.
추가로 대문자로 사용할 것이라서 upper 함수를 이용해서 대문자화 해주었다.
다음과 같이 SHA-256과 SHA-512로 해시된 것을 확인할 수 있다.
'Python > 요약 정리' 카테고리의 다른 글
[Python] URL encoding (request 파라미터 ASCII 변환) (0) | 2024.03.26 |
---|---|
[Python] AWS Glue에서 비동기 처리 (concurrent.futures) (1) | 2024.02.07 |
[Pandas] 데이터프레임 컬럼 순서 변경 (1) | 2023.11.13 |
[Pandas] 데이터프레임 groupby로 연산된 컬럼 추가 (transform) (0) | 2023.11.13 |
[Python] timedelta(months=n) (2) | 2023.11.13 |
Comments