前言

我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。

所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。

将字符串和Bytes互相转换可以使用encode()和decode()方法。如下所示:

方法中不传参数则是以默认的utf-8编码进行转换In [1]: '南北'.encode()

Out[1]: b'\\\\xe5\\\\x8d\\\\x97\\\\xe5\\\\x8c\\\\x97'

In [2]: b'\\\\xe5\\\\x8d\\\\x97\\\\xe5\\\\x8c\\\\x97'.decode()

Out[2]: '南北'

注:两位十六进制常常用来显示一个二进制字节。

利用binascii模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式:

在这里我相信有很多想要学习Python的小伙伴,小编花了一个月时间,整理了一份最适合2019年学习的干货教程,从最基础到各种框架都有整理,送给每一位Python小伙伴,文末免费自取哦~

URL编码

简介

正常的URL中是只能包含ASCII字符的,也就是字符、数字和一些符号。而URL编码就是一种浏览器用来避免url中出现特殊字符(如汉字)的编码方式。

其实就是将超出ASCII范围的字符转换成带%的十六进制格式。

Python实现

Base64编码

简述

Base64是一种用64个字符来表示任意二进制数据的方法。

Base64编码可以成为密码学的基石。可以将任意的二进制数据进行Base64编码。所有的数据都能被编码为并只用65个字符就能表示的文本文件。( 65字符:A~Z a~z 0~9 + / = )编码后的数据~=编码前数据的4/3,会大1/3左右。

Base64编码的原理

将所有字符转化为ASCII码。

将ASCII码转化为8位二进制 。

将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位。

统一在6位二进制前补两个0凑足8位。

将补0后的二进制转为十进制。

从Base64编码表获取十进制对应的Base64编码。

Base64编码的说明

转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。

数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。

不断进行,直到全部输入数据转换完成。

如果最后剩下两个输入数据,在编码结果后加1个“=”。

如果最后剩下一个输入数据,编码结果后加2个“=”。

如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

Python的Base64使用

Python内置的base64模块可以直接进行base64的编解码

注意:用于base64编码的,要么是ASCII包含的字符,要么是二进制数据

MD5(信息-摘要算法)

简述

message-digest algorithm 5(信息-摘要算法)。经常说的“MD5加密”,就是它信息-摘要算法。

md5,其实就是一种算法。可以将一个字符串,或文件,或压缩包,执行md5后,就可以生成一个固定长度为128bit的串。这个串,基本上是唯一的。

不可逆性

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

特点

压缩性:任意长度的数据,算出的MD5值长度都是固定的。

容易计算:从原数据计算出MD5值很容易。

抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

举个栗子:世界上只有一个我,但是姑娘却是非常非常多的,以一个有限的我对几乎是无限的姑娘,所以可能能搞定非常多(100+)的妞,这个理论上的确是通的,可是实际情况下....

Python的MD5使用

由于MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作

MD5长度

md5的长度,默认为128bit,也就是128个0和1的二进制串。这样表达是很不友好的。所以将二进制转成了16进制,每4个bit表示一个16进制,所以128/4 = 32 换成16进制表示后,为32位了。

为什么网上还有md5是16位的呢?

其实16位的长度,是从32位md5值来的。是将32位md5去掉前八位,去掉后八位得到的。

Python加密库PyCryptodome

PyCrypto是 Python 中密码学方面最有名的第三方软件包。可惜的是,它的开发工作于2012年就已停止。

幸运的是,有一个该项目的分支PyCrytodome 取代了 PyCrypto 。

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者为了入行、转行学习python的伙伴可以转发+关注并私信小编“资料”,获取全套资源,和大牛面对面交流!

重点:转发+关注并私信“资料”免费获取

本文仅代表作者个人观点,不代表SEO研究协会网(www.seoxiehui.cn)官方发声,对观点有疑义请先联系作者本人进行修改,若内容侵权或非法,请先联系发布者或作者删除,若需平台协助请联系平台管理员,邮箱cxb5918@163.com。学习互联网营销技术请到巨推学院www.jutuiedu.com。

python软件加密、固定机器使用_如何用Python进行最常见的加密操作?(附最新400集Python教程)...相关推荐

  1. python神经网络多元函数_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...

    小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,"怎样获得小编分享的教程 ...

  2. 阿里达摩院python教程真的吗_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...

    小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,"怎样获得小编分享的教程 ...

  3. python turtle画房子详细解释_如何用python画一个小房子

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.Python ...

  4. python爬虫实例电商_如何用代码爬抓电商数据(附淘宝API调用实例)

    原标题:如何用代码爬抓电商数据(附淘宝API调用实例) 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能B ...

  5. 初学者怎么自学python编程_怎样自学python编程?从零开始学习python,400集免费教程!...

    作为小白,在学习Python的时候,必然会走一定的弯路,有人在弯路上走丢了,有人走出了弯路.我就是属于还未走出弯路的同学,所以我想谈谈我的Python学习之路. 01先了解一下什么是python‍? ...

  6. 阿里巴巴400集python教程_摆摊吧,程序员!阿里巴巴力荐Python400集视频

    阿里巴巴力荐的视频,对于初学者想更轻松的学好Python开发,爬虫技术,Python数据分析,人工智能等技术,这里也给大家准备了一套系统教学资源,下面介绍下大型Python400集视频学习资料 有五个 ...

  7. 用python画小猪佩奇的编码_如何用Python代码画小猪佩奇

    Python语言的功能太强大了,可以制作出很多想想的作品来,不信吗?用Python代码还可以画出小猪佩奇,代码其实很简单的,下面,就将几个关键步骤代码分享出来. 怎么用Python代码画小猪佩奇? 首 ...

  8. 用python画小猪佩奇的编码_如何用python绘制小猪佩奇-python绘图教程图文讲解

    原标题:如何用python绘制小猪佩奇-python绘图教程图文讲解 如何运用python来绘制小猪佩奇呢?通过几道简单的python代码即可让你绘制出小猪佩奇,话不多说,直接上代码. 用python ...

  9. 大佬打造的400集Python视频合集免费学起来,学完万物皆可爬

    Python已经成为一种再主流不过的编程语言了.它天生丽质,易于读写,非常实用,从而赢得广泛的群众基础,被誉为"宇宙最好的编程语言",被无数程序员热烈追捧. 随着时代的发展越来越快 ...

最新文章

  1. iOS下JS与OC互相调用(四)--JavaScriptCore
  2. IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
  3. 字符串过长用...代替,鼠标悬停显示所有内容
  4. OPCClient远程连接OPC服务器配置手册 【转】
  5. Shell重定向的概念笔记
  6. 保障了罗振宇跨年演讲的PTS铂金版正式上线,产品体验全新升级
  7. 视觉SLAM中使用Matlab标定摄像头
  8. android onfling参数,Android 屏幕手势滑动中onFling()函数的技巧分析
  9. Java基础-final关键字
  10. CentOS禁用root用户远程登录
  11. ECJia 到家 v1.5.1 发布,基于 O2O 的移动电商开源系统
  12. docker~学习笔记索引
  13. 分布式系统架构网络之IDC机房
  14. Python项目实战-----科比数据集分析
  15. nmap超快高效扫描端口
  16. 《2021/07/24》1 -- linux -- 网络名称空间和网桥的基本操作
  17. 百度微笑起航将人脸识别玩出新高度
  18. 【R语言 数据挖掘】R语言如何做关联规则?
  19. Fluent案例:肾动脉RDN治疗过程的仿真
  20. HTTP抓包神器---Fiddler

热门文章

  1. 009_Raphael绘制图形
  2. Java为什么我们现在有时不用环境变量就可以运行了
  3. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份
  4. DisplayMetrics
  5. 介绍如何安装project 2016方法
  6. Day3-springmvc注解的方式进行跳转的配置
  7. python的循环控制语句有_关于Python中的for循环控制语句
  8. vetur插件_6款让开发效率“起飞的”VS code插件,哪个才是你的最爱
  9. tinymce vue 部分工具不显示_2018年编程工具发展趋势
  10. 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...