IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 第一章用Python实现md5和sha加密 -> 正文阅读

[Python知识库]第一章用Python实现md5和sha加密

第一章:详解用Python实现数据md5、sha加密

本文分享知识:

  1. pandas读取Excel数据 read_excel()
  2. 使用Python的加密库 hashlib
  3. pandas中map方法使用
  4. pandas写入Excel数据 to_excel()

代码均在 jupyter 环境下运行,公众号《帅帅的Python》回复《数据加密》获取源码
在这里插入图片描述

我这里有一份客户的Excel数据,里面有客户的手机号和身份证号信息,这些信息不能泄露,你加密一下发给我。

面对经理紧急安排的任务,小凡不敢懈怠,暂时放下手中正在处理的任务,将精力集中到数据加密这件事情上。

小凡思考了一会,数据加密,常用的加密算法有:md5和sha,既然没有要求,那就选择最简单的md5加密吧。

不一会,小凡脑海中就构思出了两种解决办法:

1、在Excel中调用md5加密函数,但这个需要安装加密文件,时间上可能来不及

2、用Python中的加密库,只需要读取Excel中的数据,再将加密好的数据导出为Excel即可

经过慎重的考虑,小凡决定使用Python进行数据加密。

一、用 pandas 读取 Excel 数据

import pandas as pd
# Excel文件
excel_path = "./test.xlsx"
# pandas读取Excel数据,并保存到 df 变量中
df = pd.read_excel(excel_path)
# 随机查看5条数据
df.sample(5)

在这里插入图片描述

read_excel() 常用参数:

io:excel文件地址

sheet_name:默认为第一个表格

header:头部(列名)从第几行开始,默认第一行

除了用pandas还可以用xlrd库读取Excel,xlwt将数据写入Excel,详情请看:第三章内容

二、加密库 hashlib

获取到数据后,开始加密。我们先学习一下如何使用加密库hashlib,加密一个客户的身份证号?

import hashlib
# 加密的字符串
string = "730763747019734357"
# 字符串进行 utf-8 编码
utf_8_str = str(string).encode("utf8")
# 调用 hashlib.md5() 方法进行加密
encry_result = hashlib.md5(utf_8_str).hexdigest()
encry_result
# 'f29e8eb231261735b849ad248ff50573'

这样就把一个字符串用 md5 的方法加密完成啦。让我们稍微修饰一下,编写一个加密的函数。

def encryption_str(string, encry_model="md5_32", encry_style=True):
    # 加密为 utf-8 编码
    utf_8_str = str(string).encode("utf8")
    # 函数字典
    param_dict = {
        "md5_32": hashlib.md5(utf_8_str),
        "md5_16": hashlib.md5(utf_8_str),
        "sha1": hashlib.sha1(utf_8_str),
        "sha224": hashlib.sha224(utf_8_str),
        "sha256": hashlib.sha256(utf_8_str),
        "sha512": hashlib.sha512(utf_8_str)
    }
    encry_result = param_dict[encry_model].hexdigest()
    if encry_model == 'md5_16':
        encry_result = encry_result[8:-8]
    # 返回结果
    return encry_result if encry_style == "小写" else encry_result.upper()

嗯,只是稍微修改一下。

三、 pandas中的 map() 方法

现在有1000多条数据,怎样才能将这么多的数据一次性加密完成呢?

这就需要用到 map() 方法:

pandas.series.map(arg,na_action=None),arg为一个函数,将series中的每一个数据作为arg函数的参数

经常与 lambda 函数连用,即:

df[“列名”].map(lambda x:func(x))

表示将该列的每一个数据 x,传递给 func(),并把函数的返回值组成新的列

df["手机号_md5"] = df["手机号"].map(lambda x:encryption_str(x))
df["身份证号_md5"] = df["身份证号"].map(lambda x:encryption_str(x))
df.sample(5)

在这里插入图片描述

数据已经加密完成啦,接下来就把数据重新保存为 Excel 发给经理。

pandas.DataFrame.to_excel() 常用参数:

sheet_name:工作表名,默认为 sheet1

index:是否输入索引,默认为 True

# 将数据保存到新的 excel 中
df.to_excel("./客户数据_md5加密.xlsx")

整个过程耗时15分钟,小凡检查了一下加密后的数据,确定没有问题,便将Excel发给经理。

见经理一直没有回消息,小凡继续做着先前的数据报告。

数据加密工具

过了一会,经理过来啦。

做的很好,能告诉我怎么做的吗?经理问。

小凡将自己如何用Python加密数据的步骤讲给经理听,但是经理好像听不太懂。

有没有什么工具,直接就将excel数据加密完成,不用写代码?经理期待的问到。

没有吧,网上的工具都只能加密一个字符串,没有直接加密excel文件的工具。不过,有什么是Python不能实现的呢?

小凡将自己如何用Python加密数据的步骤讲给经理听,但是经理好像听不太懂。

有没有什么工具,直接就将excel数据加密完成,不用写代码?经理期待的问到。

没有吧,网上的工具都只能加密一个字符串,没有直接加密excel文件的工具。不过,有什么是Python不能实现的呢?

于是,小凡决定用Python做个加密工具,这样操作起来就很方便啦。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:17:56  更:2021-11-23 12:18:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:28:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码