1. 程式人生 > 其它 >用python批量處理身份證加密

用python批量處理身份證加密

技術標籤: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
())
  1. md5加密效果
    在這裡插入圖片描述
  2. sha256加密效果
    在這裡插入圖片描述
  3. sm3加密效果
    在這裡說明:以上身份證號均為虛構,僅用於案例展示。插入圖片描述說明:以上身份證號均為虛構,僅用於案例展示。