前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python base64 加密模块

python base64 加密模块

作者头像
雷子
发布2024-01-14 15:00:18
1620
发布2024-01-14 15:00:18
举报

前言 在之前的文章,分享过hashlib,这次看下另外一个加密 模块--base64

base64 加密模块常用的方法有:

函数

参数

描述

使用

返回值

encodestring

Byte

进行base64加密

base64.encodestring('hi')

Byte

decodestring

Byte

对base64解密

base64.decodestring(b'aGVsbG8=\n')

Byte

encodebytes

Byte

进行base64加密

base64.encodebytes(b'hi')

Byte

decodebytes

Byte

进行base64解密

base64.decodebytes(b'aGVsbG8=\n')

Byte

那么我们用代码演示下:

代码语言:javascript
复制
import base64
print("加密hello")
encode_base64 = base64.encodestring(b'hello')
print(encode_base64.decode("utf-8"))
print("解密")
decode_base64 = base64.decodestring(b'aGVsbG8=')
print(decode_base64.decode("utf-8"))
import base64
print("加密hello")
encode_base64 = base64.encodebytes(b'hello')
print(encode_base64.decode("utf-8"))
print("解密")
decode_base64 = base64.decodebytes(b'aGVsbG8=')
print(decode_base64.decode("utf-8"))

结果:

代码语言:javascript
复制
加密hello
aGVsbG8=

解密
hello
加密hello
aGVsbG8=

解密
hello

这样,我们实际中,也可以用到base64加密,例如一个注册登录的程序,演示加密和解密的用法

代码语言:javascript
复制
import base64
import  pickle



def write(user):
    # 使用 dumps() 函数将 tup1 转成 p1
    with open("a.txt", 'wb') as f:  # 打开文件
        pickle.dump(user, f)  # 用 dump 函数将 Python 对象转成二进制对象文件

def read():
    with open("a.txt", 'rb') as f:  # 打开文件
        t3 = pickle.load(f)  # 将二进制文件对象转换成 Python 对象
        return t3
    
def login(username,password)->bool:
    userquery=read()

    if username not in userquery.keys():
        return False
    passwordbase=base64.encodestring(bytes(password,encoding='utf-8')).decode('utf-8')
    print(passwordbase)
    if passwordbase ==userquery[username]:
        return True
    return False
def   register(username:str,password:str)-> bool:
    if username is None or password is None:
        return False

    passwordhast=base64.encodestring(bytes(password,encoding='utf-8'))
    user={username:passwordhast.decode("utf-8")}
    print(user)
    write(user)

    return True

if __name__=="__main__":
    register("lieizi",'hello')
    print(login('lieizi','hello'))

结果:

代码语言:javascript
复制
{'lieizi': 'aGVsbG8=\n'}
aGVsbG8=

True

这样就实现了基于base64加密 和pickle的数据存储,在实际的项目中使用到加密的时候,可以用到这个方式,当然,hashlib也可以,大家经常用,看习惯用什么吧,在实际的项目中,大家都会存储到数据库,这里演示的事基于pickle得存储。

这个例子不仅演示了base64,顺便把之前学习的pickle页练习了一遍,在我们日常的学习中也是这样的,我们要善于去学完,结合实际的去运用,学着后面的,但是前面的也要进行巩固。

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档