用python批量處理身份證加密
阿新 • • 發佈:2021-01-22
技術標籤:python金融風控網際網路金融大資料python
用python批量處理身份證加密
####
為保證客戶個人關鍵資訊保安,需要對客戶四要素:身份證號、手機號、姓名、銀行卡等要素進行特定加密,以密文的方式進行業務工作的傳輸。我們都知道md5、sha256、sm3d等加密方式是無法逆向解密的,是一種相對安全且普遍應用的加密方式,其中md5加密應用較廣。
大資料風控三方資料測試時,以離線測試的方式測試三方廠商資料產品效果,都需要準備一批樣本,各方廠商對要素的加密方式各有認定要求,這就需要準備樣本的夥伴將同一批樣本加工成不同的密文傳送。下面給大家推薦如何用簡單的幾行python程式碼即可將要素批量加密成不同密文的方法。
附上程式碼如下:
import hashlib as hb
from gmssl import sm3, func
import pandas as pd
df=pd.DataFrame(['454551','4113578','47121','4532145'],columns=['身份證號'])
column_list = ['身份證號']#待加密欄位
method = 'md5'#預設加密方式
for i in column_list:
if method == 'md5':
df[i + '_MD5'] = df[i].map(lambda x: hb.md5 (str(x).encode('utf-8')).hexdigest())
if method=='sha256':
df[i+'_SHA256']=df[i].map(lambda x:hb.sha256(str(x).encode('utf=8')).hexdigest())
if method=='sm3':
df[i+'_SM3']=df[i].astype(str).map(lambda x:sm3.sm3_hash(func.bytes_to_list((str(len(x))+str(x)).encode('utf-8'))).upper ())
- md5加密效果
- sha256加密效果
- sm3加密效果
說明:以上身份證號均為虛構,僅用於案例展示。