RSA与AES加密

news/2024/11/27 8:30:15/

目录

一、非对称加密和RSA

1.非对称秘钥

2.RSA加密的核心

 3.Python中实现RSA加密解密

二、HTTPS通信过程

 三、对称加密和AES

1.AES简介

 2.Python中实现AES加解密


一、非对称加密和RSA

1.非对称秘钥

 

https://blog.csdn.net/gao131360144/article/details/79966094

HTTPS:SSH、数字指纹、数字签名SHA、RSA非对称加密、AES对称加密

2.RSA加密的核心

https://blog.csdn.net/qq_45616828/article/details/127702311

 3.Python中实现RSA加密解密

 

import rsa
from binascii import b2a_hex, a2b_hex# 第一步:生成RSA公钥和私钥
# pub, priv = rsa.newkeys(256)
pub, priv = rsa.newkeys(2048)
print(pub, priv)# 第二步:公钥加密
encrypt = rsa.encrypt('Hello-蜗牛'.encode(), pub)
print(encrypt)
encstr = b2a_hex(encrypt).decode()
print(encstr)# 第三步:私钥解密
# decrypt = rsa.decrypt(encrypt, priv)
decrypt = rsa.decrypt(a2b_hex(encstr), priv)
print(decrypt.decode())

二、HTTPS通信过程

 三、对称加密和AES

1.AES简介

 2.Python中实现AES加解密

加密过程

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex# 加密过程
source = 'Hello-蜗牛难道不是吗也许'# 如果source分组后剩余长度不足16位的倍数就用空格补足为16位
if len(source.encode('utf-8')) % 16:add = 16 - (len(source.encode('utf-8')) % 16)
else:add = 0
source = source + ('\0' * add)
print(source)# 定义密钥和偏移量,必须是16个字节、24字节或32字节
# key = 'todayiswonderful-1234567'.encode()
key = 'todayiswonderful-FEDCBA987654321'.encode()
mode = AES.MODE_CBC
iv = b'1234567890ABCDEF'
cryptos = AES.new(key, mode, iv)cipher = cryptos.encrypt(source.encode())
print(cipher)
print(b2a_hex(cipher).decode())

解密过程

 

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
# 解密
source = 'f0c0ba97df33f91fdbfacd99c38838f347831e7e3a1f893f6752cdd080fc1c83cb300c0b7e117d587d7e5a69dbb70aee'key = 'todayiswonderful-FEDCBA987654321'.encode()
mode = AES.MODE_CBC
iv = b'1234567890ABCDEF'
cryptos = AES.new(key, mode, iv)dest = cryptos.decrypt(a2b_hex(source))
print(dest.decode().rstrip('\0'))

 

 


http://www.ppmy.cn/news/940390.html

相关文章

AES加密的坑

其实不应该算AES加密的坑,而是加密后使用的坑 正常的加密应该是 $data openssl_encrypt($input, AES-256-CBC, $this->key, OPENSSL_RAW_DATA, $this->hex_iv); 返回给用户使用还要base64编码, base64_encode($data) 就是这个编码可能会造成解…

AES加密过程

AES是一个对称密码,旨在取代DES成为广泛使用的标准。 一、AES的加密过程 二、AES的数据结构 加密解密算法的输入是一个128位分组。这些分组被描述成44的字节方阵,这个分组被复制到state数组中,并在加密和解密的每一阶段都被修改。在字节方阵…

AES加密代码

这里分享AES的加密代码&#xff0c;包含两种填充方式PKCS7Padding和PKCS5Padding。代码中加密后的数据再加密成Base64形式&#xff0c;这一部分也可以换成16进制的形式。 Java本身是不支持PKCS7Padding加密、解密的&#xff0c;因此需要添加外部依赖。 <!-- https://mvnre…

AES加密操作

AES基本过程图解&#xff1a; &#xff08;1&#xff09;明文P&#xff1a;没有经过加密的数据。 &#xff08;2&#xff09;密钥K&#xff1a;用来加密明文的密码&#xff0c;在对称加密算法中&#xff0c;加密与解密的密钥是相同的。密钥为接收方与发送方协商产生&#xff0c…

AES加密文件

使用Python对文件进行AES算法的加密和解密 AES算法简介 高级加密标准, 它是一种对称加密算法&#xff0c;AES只有一个密钥&#xff0c;这个密钥既用来加密&#xff0c;也用于解密。 AES加密方式有五种&#xff1a;ECB, CBC, CTR, CFB, OFB。 从安全性角度推荐CBC加密方法&am…

AES加密简析

* AES加密是对称加密 128 192 256 分别表示密钥的长度 * AES的加密方式会将明文拆分成不同的块进行加密&#xff0c;例如一个256 位的数据用128的密钥加密&#xff0c;则分成 明文1&#xff08;128位&#xff09; 明文2&#xff08;128位&#xff09; 加密 密文1&#xff0…

Linux AES加密

一、AES ECB 256 加密函数 /* 功能&#xff1a;进行AES加密&#xff0c;返回hex转成的字符串 输入参数&#xff1a;Plaintext&#xff1a;明文 长度是16的倍数Ciphertext&#xff1a;密文 长度是明文长度的两倍key:密钥. */ int AES256_encrypt( unsigned char *Plaintext,unsi…

AES加密分析

声明&#xff1a;本文章所有内容仅供学习使用&#xff0c;无其它任何目的&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则产生一切后果均与作者无关 目标链接&#xff1a;aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55 1.抓包分析 F12打开控制台&#xff0c…