python中的加密算法 -- MD5加密--DES加密

2023-10-29

MD5加密算法

MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要。

不可逆性
每个人都有不同的指纹,看到这个人,可以得出他的指纹等信息,并且唯一对应,但你只看一个指纹,是不可能看到或读到这个人的长相或身份等信息。

特点
1、 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、 容易计算:从原数据计算出MD5值很容易。
3、 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4 、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

# md5加密
import hashlib
str = 'hello'
hash = hashlib.md5()
hash.update(str.encode('utf-8'))
print(hash.hexdigest())

在这里插入图片描述

DES加密算法

加密原理

DES 使用一个56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。

# DES加密
from Cryptodome.Cipher import DES


key = b'abcdefgh'  # 密钥 8位或16位,必须为bytes
def pad(text):
    # 加密文本必须为8的倍数
    while len(text) % 8 != 0:
        text += ' '
    return text

des = DES.new(key,DES.MODE_ECB)
text = 'hello world'
data = pad(text)
en = des.encrypt(data.encode('utf-8'))
print(en)
plain = des.decrypt(en).decode().rstrip('')
print(plain)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的加密算法 -- MD5加密--DES加密 的相关文章

随机推荐

  • C++多线程并发总结

    文章目录 1 线程创建与管理 1 1 并发与并行 1 2 多线程并发与多进程并发 2 C 线程创建 2 1 std thread 线程同步之互斥锁 std mutex std unique lock lock与unlock保护共享资源 lo
  • Java封装OkHttp3工具类

    一 准备工作 Maven项目在pom文件中引入jar包
  • 阿里云 MSE 助力开迈斯实现业务高增长背后带来的服务挑战

    开迈斯新能源科技有限公司于 2019 年 5 月 16 日成立 目前合资股东分别为大众汽车 中国 投资有限公司 中国第一汽车股份有限公司 一汽 大众汽车有限公司 增资扩股将在取得适当监督 包括反垄断 审批后完成 万帮数字能源股份有限公司和安
  • 一文看懂哈希表并学会使用C++ STL 中的哈希表

    最近在刷题以及做编程练习的作业时经常会用到哈希表 碰到一些想用的函数时每次都看别人的博客 现结合别人的博客对哈希表做个总结 本篇博客的主要内容如下 1 哈希表的定义 2 如何使用STL库中的哈希表 3 STL中哈希表的常用函数 1 哈希表的
  • 【微信小程序警告】property received type-uncompatible value: expected <String> but get null value. Used empty

    微信小程序警告property received type uncompatible value expected but get null value Used empty 遇到这种错误多半是在wxml文件中写入了未在js文件中定义的值
  • 787. 归并排序

    文章目录 Question Ideas Code Question 给定你一个长度为 n 的整数数列 请你使用归并排序对这个数列按照从小到大进行排序 并将排好序的数列按顺序输出 输入格式 输入共两行 第一行包含整数 n 第二行包含 n 个整
  • element ui表格data搜索重置功能

    element ui表格搜索重置功能 本地 1 html
  • STM32_Debug 使用ST-Link进行调试出现Error:Flash Download Failed-"Cortex-M3" 解决方案

    在Debug窗口依次注意以下几个点 1 选择与主控芯片相配套的芯片 2 选择ST Link Debugger 此处注意该页面最下面一行可不更改 亲测有效 3 接上图点击进入Setting 依次选择 4 进入Flash Download 注意
  • python类基础

    类把数据与功能绑定在一起 创建新类就是创建新的对象 类型 从而创建该类型的新 实例 类实例具有多种保持自身状态的属性 类实例还支持 在类中定义的 改变自身状态的方法 和其他编程语言相比 Python 用非常少的新语法和语义将类加入到语言中
  • 算法题:一堆数组的动态和

    题目描述 给你一个数组 nums 数组 动态和 的计算公式为 runningSum i sum nums 0 nums i 请返回 nums 的动态和 from typing import List x 1 2 3 4 def runnin
  • Logback 集成 Skywalking Trace ID 并结合skywalking agent源码进行分析

    Logback集成skwalking的traceId 本文主要讲述在工程的logback文件中集成skywalking的traceId 以便在日志中打印对应的traceId 文章目录 Logback集成skwalking的traceId 前
  • Android 视频后台播放,TextureView封装使用

    突然给了个视频开发任务 之前做过的都是不可见后停止播放状态使用surfaceView 基本上就搞定了 突然提出后台继续播放 网上也没找到相关资料 所以就总结一下 第一次使用Mediaplayer SurfaceView 出现了问题 home
  • Hessian序列化过程中Map的问题

    开篇 近期线上dubbo不停的报Hessian反序列化的警告日志 虽然不影响正常使用但作为有追求的程序员还是再一次尝试解决下 之所以说再一次是因为前一次尝试解决 但是没解决成功 错误信息如下 结论是在consumer端序列化了object
  • 配置自己的Git远程服务器

    配置自己的Git远程服务器 具体分为服务器端和客户端 Ubuntu 17 10 1 服务端和客户端安装git 具体的安装步骤可参考其他相关笔记 gt sudo apt get install git 2 服务端安装ssh 在我做实验时就有服
  • 【数据迁移复盘】

    数据迁移复盘 迁移场景 新功能上线 将4w条老的供应商数据迁移到新的数据结构表中 涉及到8张表 10多种迁移逻辑 当时在测试环境和正式环境做了几条测试数据的迁移 1s左右迁移完成1个供应商 感觉挺快 就没有做全量的时间估算 现在感觉当时太年
  • Jenkins 插件下载速度慢安装失败?这篇文章可能解决你头等难题!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • python爬虫,selenium调用chrome浏览器的webdriver插件版本问题

    要想正常执行代码 需要提前把chrome浏览器的webdriver插件下载到本地的chrome浏览器的安装文件夹下面去 具体的位置就是如下图所示 如图 你自己的chrome浏览器在哪 你下载好解压缩的webdriver就放在对应的位置即可
  • R2 的Python实现总结

    关于R2的定义这里不进行叙述 维基百科上有很详细的解释 https en wikipedia org wiki Coefficient of determination 这里记录一下几种Python实现 1 从sklearn metric中
  • 换了堡垒机,python自动巡检OA服务器的脚本进行修改

    01 复制docx模板 重命名模板 02 ssh登录堡垒机 输入命令 获取结果写入txt文件 03 用txt文件构假的putty窗口 并截图 04 把截图插入docx文档 05 把生成txt文件 png文件删除 D Study myproj
  • python中的加密算法 -- MD5加密--DES加密

    MD5加密算法 MD5消息摘要算法 属Hash算法一类 MD5算法对输入任意长度的消息进行运行 产生一个128位的消息摘要 不可逆性 每个人都有不同的指纹 看到这个人 可以得出他的指纹等信息 并且唯一对应 但你只看一个指纹 是不可能看到或读