有时候身份证,手机号这种敏感信息不能用明文发生,需要使用MD5码进行加密。,怎么用python加密手机号呢。很简单,就用hashlib库就行,。
先导入包
python
import hashlib
import pandas as pd
import os
定义手机号MD5加密函数
python
# 定义MD5加密函数
def encrypt_phone_md5(phone):
"""对手机号进行MD5加密"""
# 处理可能的空值
if pd.isna(phone):
return None
# 确保手机号是字符串类型
phone_str = str(phone).strip()
# 检查是否是有效的11位手机号格式
if len(phone_str) == 11 and phone_str.isdigit():
md5 = hashlib.md5()
md5.update(phone_str.encode('utf-8'))
return md5.hexdigest()
else:
# 不是有效手机号格式,返回原内容或根据需要处理
return phone_str
我们可以先读取数据查看一下
python
df=pd.read_excel('2025未知异常用户.xlsx')
df.head()

可以看到原始数据一列,就是手机号(打了个码)。
然后使用下面函数就可以加密了
python
# 文件路径设置
input_file = '2025年未知异常用户.xlsx' # 输入的文件名
output_file = '2025年未知异常用户_MD5加密.xlsx' # 输出的加密后文件名
# 检查输入文件是否存在
if not os.path.exists(input_file):
print(f"错误:找不到输入文件 '{input_file}'")
else:
try:
# 读取CSV文件
df = pd.read_excel(input_file)
# 检查是否存在phone列
if 'mobile' not in df.columns:
print("错误:表格中不存在'mobile'列")
else:
# 对phone列的手机号进行MD5加密
df['MD5'] = df['mobile'].apply(encrypt_phone_md5)
# 保存加密后的数据到新的CSV文件
df.to_excel(output_file, index=False)
print(f"手机号加密完成,已保存至 '{output_file}'")
# 显示前几行查看结果
print("\n加密后数据示例:")
display(df.head())
except Exception as e:
print(f"发生错误:{str(e)}")

可以看到原始手机号和加密之后的MD5码了。
MD5码没有解密的方法,只能用原始彩虹表去匹配。所以就算文件泄露了,被坏人拿到了MD5码也是没用的,需要原始彩虹表才能匹配还原出原来的手机号。