Python加密操作 对称加密/非对称加密
安装包:
pycryptodome
https://pycryptodome.readthedocs.io/en/latest/src/installation.html#compiling-in-linux-ubuntu
1 from Crypto.Hash import SHA256
2 from Crypto.PublicKey import RSA
3 from Crypto import Random
4 from Crypto.Signature import pkcs1_15
5 from Crypto.Cipher import PKCS1_v1_5
6
7 key = RSA.generate(1024)
8 # 公钥 私钥
9 pri_key_text = key.export_key()
10 pub_key_text = key.public_key().export_key()
11
12 pub_key = RSA.import_key(pub_key_text)
13 pri_key = RSA.import_key(pri_key_text)
14
15 # 加密
16 text = b'abcdefg'
17 cipher = PKCS1_v1_5.new(pub_key)
18 etext = cipher.encrypt(text)
19
20 # 解密
21 cipher_de = PKCS1_v1_5.new(pri_key)
22 dtext = cipher_de.decrypt(etext,None)
23
24 # 签名
25 dg = SHA256.new(text)
26 sign = pkcs1_15.new(pri_key).sign(dg)
27
28 # 签名验证
29 dg2 = SHA256.new(dtext)
30 try:
31 pkcs1_15.new(pub_key).verify(dg2, sign)
32 except ValueError:
33 print('验证失败')
34
35 # 对称加密
36
37 from Crypto.Random import get_random_bytes
38 from Crypto.Cipher import AES
39 from Crypto.Util.Padding import pad, unpad
40
41 key = get_random_bytes(16)
42 cipher = AES.new(key, AES.MODE_CBC)
43 edata = cipher.encrypt(pad(text, AES.block_size))
44
45 cipher_d = AES.new(key, AES.MODE_CBC, cipher.iv)
46 unpad(cipher_d.decrypt(edata),AES.block_size)
Python加密操作 对称加密/非对称加密的更多相关文章
- 第十四章 调试及安全性(In .net4.5) 之 对称及非对称加密
1. 概述 本章内容包括:对称及非对称加密算法..net中的加密类.使用哈希操作.创建和管理签名认证.代码访问权限 和 加密字符串. 2. 主要内容 2.1 使用对称和非对称加密 ① 对称加密:使用同 ...
- Java对称与非对称加密解密,AES与RSA
加密技术可以分为对称与非对称两种. 对称加密,解密,即加密与解密用的是同一把秘钥,常用的对称加密技术有DES,AES等 而非对称技术,加密与解密用的是不同的秘钥,常用的非对称加密技术有RSA等 为什么 ...
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
C#.NET中对称和非对称加密.解密方法汇总--亲测可用 在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...
- 常见三种加密(MD5、非对称加密,对称加密)
转载. https://blog.csdn.net/SSY_1992/article/details/79094556 任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为 ...
- 对称、非对称加密算,openssl生成证书(笔记)
对称加密算法 1.密钥只有一个,加密和解密都需要同一个密钥2.DES,IDEA,AES3.明文+密钥=密文, 密文+密钥=明文4.加密速度快,系统开销小,适用大量数据的加密 非对称加密算法1.密钥由公 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
版权声明:本文为博主原创文章,未经博主允许不得转载. [前言] 本文简单的介绍了加密技术相关概念,最后总结了java中现有的加密技术以及使用方法和例子 [最简单的加密] 1.简单的概念 明文:加密前的 ...
- HTTPS加密那点事-对称、非对称加密、数字证书
转自:[漫画]https 加密那点事 首先,HTTP协议的缺点:没有对数据进行加密,都是明文传输的.如果要改进这种明文传输的协议,该如何做呢? 对称加密: 在每次发送真实数据之前,服务器先生成一把密钥 ...
- Android Keystore 对称-非对称加密
Android数据加密: Anroid数据加密方式 Android 提供了 KeyStore 等可以长期存储和检索加密密钥的机制,Android KeyStore 系统特别适合于存储加密密钥. “An ...
- 对称与非对称加密;SSL;HTTPS;AJP
1.对称加密就是加密与解密的时候都是用一个密码 2.非对称加密,有一对密码A,B:用A加密就得用B解密,相对的用B加密就得用A解密 3.公钥与私钥,这一对密码,随便拿一个公布出去,那个就是公钥,剩下一 ...
- 使用java实现对称加密解密(AES),非对称加密解密(RSA)
对称加密:双方采用同样的秘钥进行加密和解密.特点是速度快,但是安全性没有非对称加密高 非对称加密:接收方生成的公有秘钥公布给发送方,发送方使用该公有秘钥加密之后,发送给接收方,然后接收方使用私有秘钥解 ...
随机推荐
- Linux内核之I2C协议
I2C协议标准文档 THE I2C-BUS SPECIFICATION VERSION 2.1 JANUARY 2000: https://www.csd.uoc.gr/~hy428/reading/ ...
- WEB服务与NGINX(21)- nginx 的fastcgi反向代理功能
目录 1. NGINX实现fastcgi反向代理 1.1 fastcgi概述 1.2 nginx实现fastcgi相关参数 1.3 nginx与php-fpm部署在一台服务器 1.3.1 php服务器 ...
- java调用webservice接口
1.直接AXIS调用远程的webservice 注意:不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法. import org.apache.axis.c ...
- 逆向wechat
本篇博客园地址https://www.cnblogs.com/bbqzsl/p/18171552 计划来个wechat的逆向系列,包括主程序WeChat,以及小程序RadiumWMPF. 开篇,对We ...
- Linux环境下:程序的链接, 装载和库[动态链接]
静态链接库在程序编译阶段就完成了链接工作,完成链接后,依赖的库就都打入了可执行文件中,所以文件大小一般会比较大. 而动态库链接库是在程序运行时才被链接的,所以磁盘上只要保留一份副本,因此节约了磁盘空间 ...
- AI回答总不满意?你的提问方式可能完全错误!
AI回答总不满意?你的提问方式可能完全错误! 大家好,我是卷福同学,一个专注AI大模型整活的前阿里程序员,腾讯云社区2023新秀突破作者 向AI提问想写一篇论文,结果AI就生成2000字左右的文章后就 ...
- 程序编译流程与 GCC 编译器
目录 文章目录 目录 GUN 计划 GCC 编译器 Clang 和 LLVM GCC 的常用指令选项 GCC 所遵循的部分约定规则 GCC 的编译流程 GCC 的编译流程示例 编译多个文件 GUN 计 ...
- apisix~升级原始插件的方法
扩展apisix原始插件 当apisix提供的插件不能满足我们要求时,我们可能需要将它的plugin进行个性化扩展,例如一个jwt认证插件jwt-auth,它本身具有验证jwt有效性功能,支持rs25 ...
- 【U8】bom全阶 点击展开按钮,无法获得叶子子阶
经查看 是因为 子件的失效日期与生效日期是相同一天,延后子件的失效日期就可以在点击展开按钮后,看到子阶bom了.
- Vue——Ajax请求的基本使用
1.get方法发送Ajax请求 // 直接在 URL 上添加参数 ID=12345 axios.get('/user?ID=12345') .then(function (response) { co ...