工作上遇到需求,一批手机号要md5加密导出。为了保证数据安全,所以没有采用网上工具来加密。md5的加密算法是开源的且成熟的,很多语言都有对应包可以直接用,我写了一个简单的python来实现,另一位同事做了一个hiveUDF来实现,这里都给大家分享一下。
目标:
读取csv文件,并且对其中的内容进行md5加密,32位加密,将加密后的密文存入另一个csv文件。
python实现:
(1)准备好要读取的csv文件。单列,一行存一个手机号码。
(2)python代码:
#encoding=utf8
import hashlib #加密模块
import os
#定义一个加密函数,32位md5加密
def md5_encryption(str):
m=hashlib.md5()
m.update(str)
return m.hexdigest()
#准备要读取的csv和要被写入的csv,两个文件要和此python放在同一个文件夹里
readfilename=os.path.join(os.path.dirname(__file__),"testcsv.csv")
writefilename=os.path.join(os.path.dirname(__file__),"writecsv.csv")
print('read:',readfilename)
print('write:',writefilename)
with open(readfilename,'r') as rf:
#逐行写入加密后的密文,strip函数用于剔除换行符\n,不然是对“13000000\n”加密而不是对“13000000”加密
with open(writefilename,'w') as wf:
for row in rf.readlines():
wf.write(md5_encryption(row.strip()))
wf.write('\n')
#计算一下写入的行数
with open(writefilenam