python把字符串3des加密_Python干货之六大密码学编程库
信息加密和信息隐藏是实现信息安全与保密的主要手段。除了一些经典的加密解密算法和自己设计的加密算法之外,我们还可以充分利用Python标准库和扩展库提供的丰富功能来辅助我们完成信息加密解密实现。本文收集了6个常用的Python密码学编程库以供参考。
1、Hashids
Hashids是一个非常小巧的跨语言的开源库,它用来把数字编码成一个随机字符串, 并轻松通过key解码回来。这对于将多个参数捆绑到一个参数中或仅将其用作简短的uid非常有用。著名的Youtube网站就是用Hashids把网站数据库id搞乱,让它失去顺序性,无法直接遍历,从而提高爬虫的门槛。
官网:Hashids
2、Paramiko
Paramiko是用于建立 SSH2 连接(客户端或服务器)的Python库。重点是使用 SSH2 作为 SSL 的替代方法,以在 python 脚本之间建立安全连接,以实现远程命令执行、文件传输、中间SSH代理等功能。Paramiko支持所有主要密码和哈希方法。也支持 SFTP 客户端和服务器模式。
官网:Welcome to Paramiko!
3、Passlib
Passlib是基于Python2&3的密码散列库,它提供了30多种密码散列算法的跨平台实现,以及管理现有密码散列的框架。它被设计成可用于广泛的任务,包括从验证/etc/shadow中的散列密码到为多用户应用程序提供高强度密码散列算法。
官网:Passlib 1.7.4 documentation
4、PyNaCl
PyNaCl是libsodium库的Python实现。libsodium是一个基于NaCI开发的先进而且易用的加密库,主要用于加密、解密、签名和生成密码哈希等。PyNaCI能够提供数字签名、密钥加密、公钥加密、哈希和消息身份验证、基于密码的密钥派生和密码散列功能。
Github:pyca/pynacl
5、Cryptography
Cryptography密码库的目标是成为”人类易于使用的密码学包“,它包括The hazardous materials layer和The recipes layer两个部分。The hazardous materials(低级密码学原语)提供了基本的密码概念,如加密、签名、Hash等算法,但是直接使用密码学原语容易出错。所以Cryptography库对密码学原语进行了安全集成,形成了更高层次的The recipes layer (密码学菜谱)。通过其集成的对称密码函数Fernet,我们可以轻松实现对称加密。
官网:Welcome to pyca/cryptography - Cryptography 3.4.dev1 documentation
6、Pycrypto
Pycrypto(Python 密码学工具箱),可以说是密码学编程库中最成功也是最成熟的一个,它提供了MD5、SHA、HMAC等多个安全哈希算法,以及DES、AES、ARC4、RSA、DSA、ElGamal等多个加密算法和数字签名算法的实现,并提供了很多有用的模块和函数(如长字符串转换、随机数生成、数论函数等)。
官网:PyCrypto - The Python Cryptography Toolkit
关于Python密码学
整理这篇文章,是为了更好的学习了解Python的加密解密实现,以备不时之需。而真正去使用,需要有一定Python和密码学基础。如果对密码学有兴趣,并想真正去搞懂学透的话,还是建议从基本的密码学原理和加密解密算法原理入手,推荐我入门学习的一本书,人民邮电出版社的《Python密码学编程》,学习下来还蛮有趣的。
python把字符串3des加密_Python干货之六大密码学编程库相关推荐
- python对字符串进行加密_python学习:实现将字符串进行加密
''' 题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字 ...
- python中字符串异或_python 异或加密字符串的实例
python 异或加密字符串的实例 做个简单习题:输入明文给定秘钥,密文还原,按位异或处理. import base64 as b64 def xor_encrypt(tips,key): ltips ...
- python统计字符串数字个数_python统计字符串中数字个数_后端开发
python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...
- python的字符串包括哪些_python公开课|Python字符串包含什么,我们应该怎么用
[摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...
- python输出字符串拼接数字_python实现字符串和数字拼接
python实现字符串和数字拼接 如下所示: 将i前面加str(i)就可以了 补充拓展:python 连接字符串和数字 python 连接字符串和数字的问题: 首先要说的是,python是强类型的语言 ...
- python获取字符串首字母_Python学习之字符串方法总结
1.首字母大写 1 test = "abcdef" 2 v = test.capitalize() 3 print(v) 2.所有字母变小写,lower()只能对ASCII 也就是 ...
- python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...
- python遍历字符串存入列表_Python遍历字符串的4种方式
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Python遍历字符串的4种方式 1.下标法 2.for in 3.iter内 ...
- python中字符串怎么引用_Python:字符串中引用外部变量的3种方法
方法一: username=input('username:') age=input('age:') job=input('job:') salary=input('salary') info1='' ...
最新文章
- 使用Angular依赖注入自定义SAP Spartacus的ProductAdapter
- 系统学习redis之二——redis集群搭建
- 比特币Merkle树和SPV机制
- Python IO 基本编程示例
- 拒绝offer的理由_接受拒绝的3大理由
- 8g内存一般占用多少_手机的运行内存6g和8g有什么区别?内行人一语道破,别被骗了...
- Axure的一些入门小案例
- 微信小程序发送模板消息通知
- 《1024伐木累》-屌丝、快播、苍老师
- SiO2 介孔二氧化硅纳米颗粒的明胶包裹/二氧化硅杂化凝胶固定化醇脱氢酶/白蛋白和壳聚糖包裹的二氧化硅微球/二氧化硅包覆的量子点荧光编码微球
- android远程桌面工具下载,Android远程桌面助手
- 解决 Office 2007/2010 安装错误:1402
- 计算机机房kvm系统配件,KVM设备在机房管理改造中的解决方案
- [附源码]SSM计算机毕业设计领导干部听课评课管理系统JAVA
- html中的matrix属性,transform,matrix属性讲解
- 良心纯干货|杭州配眼镜怎样才能不被坑?业内人士分享
- GL benchmark测试解析
- ELF PLT Hook 原理简述
- SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——5.Android手机端与robot端ROS网络通信...
- php新闻增删改查操作
热门文章
- 【Java】Java对象引用四个级别(强、软、弱、虚)
- 【java】Java 最坑爹的 10 大功能点
- 【registry】Reader schema missing default value for field: age
- 连接oracle报错:Invalid connection string format, a valid format is: host:port:sid
- MySQL实现时间按月,日,小时分组查询
- java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是为什么
- Cookie、Session、Token、JWT分别是什么(二)
- php数组连起来,PHP 数组的拼接重组
- 使用Redis作为分布式锁的错误用法
- MySQL误删数据?快速恢复指南来了!