当前位置: 首页 > news >正文

网站设计培训班询常州网站建设

网站设计培训班询,常州网站建设,德州做网站,深圳网站建设设🍦🍦写这篇AES文章也是有件趣事,有位小伙伴发了段密文,看看谁解密速度快,学过Python的小伙伴一下子就解开来了,内容也挺有趣的。 🍟🍟原来加解密也可以这么有趣,虽然看起…

🍦🍦写这篇AES文章也是有件趣事,有位小伙伴发了段密文,看看谁解密速度快,学过Python的小伙伴一下子就解开来了,内容也挺有趣的。
🍟🍟原来加解密也可以这么有趣,虽然看起来很枯燥!

目录

  • 1、认识AES
    • 1.1、全称
    • 1.2、简介
    • 1.3、对称加密
    • 1.4、密钥
    • 1.5、加密函数
    • 1.6、解密函数
    • 1.7、非对称加解密
    • 1.8、简单结构说明
    • 1.9、加密模式
  • 2、基础信息
    • 2.1、安装模块
    • 2.2、查看目录
    • 2.3、注意点
    • 2.4、进制转换
  • 3、加解密
    • 3.1、加密代码
    • 3.2、解密代码
  • 4、常见情况
  • 5、一图总结
  • 6、推荐阅读

【🍬挑战谁最快解密这个密文🍬】

  • 温馨提示:
选项
AES加密模式CBC
填充pkcs
数据块128位
密码my_python_key_20230220ABC_ComeOn
偏移量python1234567890
输出hex
字符集uft编码(unicode编码)

【加密串:a5e83e3ad027dd2ce1f57a85cfb170f423f569cad3307b7766ea586c9b8c02725f5771664b25c1205f14567f04f906f5095dae85ee241c14fdc188cbe9e6425c3267a10d95b1f6ec63dff96dd519a06e0e6f0ea1c906dd79902cdd57517658d00cd5a5fe93b782582c7968f9b917495af50c7376dc9157fce048db2b72ddcf1deda7f66658fadb50f7cee0b024b2ad0c】

1、认识AES

1.1、全称

Advanced Encryption Standard,高级加密标准

1.2、简介

AES,是一种最常见的对称加密算法。
它的特点是分组加密,每一组是16字节,是目前主流的高级加密算法

1.3、对称加密

对称加密算法使用了相同的密钥进行加密和解密,它的特点就是速度快计算量小,是最常用的加密方式以及各种安全技术应用的基础

1.4、密钥

密钥支持16位和32位,必须正确设置长度,否则会报错。
加密和解密使用的密钥都是相同的,所以在实际使用时,传输肯定是密文,密钥是不允许传输,只有接收方和发送方知道密钥。
如果实在需要把密文也要在网络上传输,那么就需要通过非对称加密方式加密密钥。否则泄露密钥,那密文就毫无保密作用。

1.5、加密函数

设密钥为Key,明文为Plaintext,密文Ciphertext,加密函数名Encryption,函数如下
C=E(K,P)

1.6、解密函数

设密钥为Key,明文为Plaintext,密文Ciphertext,解密函数名Decrypt,函数如下
P=D(K,C)

1.7、非对称加解密

和对称加解密算法相反,它是使用了不同的密钥进行加解密,它的特点就是速度非常慢破解难度大,适合网络上偶尔临时传输。
它常见的算法有RSA、ECC和EIGamal

1.8、简单结构说明

除了第一轮加密,其他轮次都是循环加密
AES支持的长度:128、192、256,AES128/AES192/AES256,特点就是位数长安全性高性能低,反之安全性低性能高。
在这里插入图片描述

1.9、加密模式

ECB模式和CBC模式是最常用的两种模式,除了ECB不需要加初始值,其他模式都需要加

编号模式说明
1ECB
Electronic Code Book Mode
常用的模式之一
不需要加偏移量或初始值
2CBC
Cipher Block Chaining Mode
常用的模式之一
需要加偏移量或初始值
3CFB
Cipher Feedback Mode
需要加偏移量或初始值
4OFB
Output Feedback Mode
需要加偏移量或初始值
5CTR
Counter Mode
需要加偏移量或初始值
6PCBC
Propagating Cipher Block Chaining Mode
需要加偏移量或初始值

🏆🏆 原则:Write Less Do More!
🍎🍎简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!

2、基础信息

2.1、安装模块

安装pycryptodome模块,
由于pycrypto模块为第三方库,已经停止多年不更新和维护了,这个时候pycryptodome模块就来了,它是之前模块的扩展,用法和之前一样。

# 运行如下命令安装
pip install pycryptodome# 如下方式引用
from Crypto.Cipher import AES

在这里插入图片描述

2.2、查看目录

查看Python安装目录,
由于小编这里用的是VS开发工具,默认安装的Python路径为如下目录
具体查看Python版本,可以浏览点击此篇文章【python】基础学习系列之查看版本(1)

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python39_64

2.3、注意点

默认在windows环境下安装,pycryptodome安装的路径如下,
温馨提示,可能在其他环境安装文件夹是小写需要改为大写,正确路径和命名如下,Crypto
在这里插入图片描述

2.4、进制转换

1)binascii.b2a_hex
将字符串转为十六进制,得到的字符串是是原数据长度的两倍,如下

  • 引用方式一
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-03-09import binasciia = 'Python'
print("a字符串值:",a)# 字符串转为十六进制
b = binascii.b2a_hex(a.encode()) #注意:这里需要转换为编码格式,否则报错
print("b字符串值:",b)
  • 引用方式二
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-03-10from binascii import b2a_hexa = 'Python'
print("a字符串值:",a)# 字符串转为十六进制
b = b2a_hex(a.encode()) #注意:这里需要转换为编码格式,否则报错
print("b字符串值:",b)

在这里插入图片描述

2)binascii.a2b_hex

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-03-10from binascii import a2b_hexa = b'507974686f6e'
print("a十六进制串:",a)# 十六进制转为字符串
c = a2b_hex(a.decode())
print("c字符串值:",c)

在这里插入图片描述

3、加解密

3.1、加密代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-20from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hexcode='utf-8'
offset=b'python1234567890'  # 字节
mykey='my_python_key_20230220ABC_ComeOn'
key = mykey.encode(code)
mode = AES.MODE_CBC# 加16位
def addTo16(txt):if len(txt.encode(code)) % 16:add = 16 - (len(txt.encode(code)) % 16)else:add = 0txt = txt + ('\0' * add)return txt.encode(code)# 加密数据函数
def encryptData(text):# Incorrect AES key length (15 bytes)text = addTo16(text)cryptos = AES.new(key, mode,offset)cipher_text = cryptos.encrypt(text)return b2a_hex(cipher_text)# 程序入口
if __name__ == '__main__':# 加密text="My Name is Python"encryptStr = encryptData(text)print("明文字符串:", text)                            print("加密串数据:", encryptStr)

3.2、解密代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-03-09from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hexcode='utf-8'
offset=b'python1234567890'  # 字节
mykey='my_python_key_20230220ABC_ComeOn'    # 支持16位和32位长度
key = mykey.encode(code)
mode = AES.MODE_CBC# 加16位
def addTo16(txt):if len(txt.encode(code)) % 16:add = 16 - (len(txt.encode(code)) % 16)else:add = 0txt = txt + ('\0' * add)return txt.encode(code)# 解密数据函数
def decryptData(text):cryptor = AES.new(key, mode,offset)plain_text = cryptor.decrypt(a2b_hex(text))return bytes.decode(plain_text).rstrip('\0')# 程序入口
if __name__ == '__main__':# 加密串text="06a9c834a3fa7a9774a0e0e319226f7f"# 解密串decryptStr = decryptData(text)                                 print("加密串数据:", text)print("解密串数据:", decryptStr)

4、常见情况

1)使用16位长度密钥解析32位长度密文会报错,提示如下
‘utf-8’ codec can’t decode byte 0x82 in position 2: invalid
“utf-8”编解码器无法解码位置2中的字节0x82:无效
在这里插入图片描述

2)使用不正确长度密钥,提示如下
Incorrect AES key length (19 bytes)
AES密钥长度不正确(19字节),正确长度是16和32
在这里插入图片描述

5、一图总结

在这里插入图片描述

6、推荐阅读

编号文章标题
1【Python】输入一个整数n,1<=n<=10,输出一个n层的特定三角形
2【华为OD机试题】字符串消消乐
3【Python】使用bs4的
4【Python】输入一段字母字符串
5【Python】编写代码实现指定下标值顺序进行正序和倒序排序算法编程

【挑战谁最快解密这个密文:a5e83e3ad027dd2ce1f57a85cfb170f45d5ce9f8e29dfb18c6fbaab26ee56e980c8da839cb63fd9620107bd19b9cb8336ebc43052aad19784ceb8e32839a9ecfb1f12730541f40e58aab9017b2fdec1e1bcb17e8de4a417323f56ffc50e0d13c3651b032bbcf1fe1294142f76b322652381f86fa0d60069ccfda5cc720270f2199f2e1cfed559c9766d580fba2386a8a2873c82ee752befbea04c66e8b8574653e611ee7d423b409ea238448639a17d1f4bec72dde1f2cc6a6b1a6c627700a28】

🍹🍹不管多忙,都要抽出时间来写博客,沉淀一些经验和感受!欢迎小伙伴交流学习,技术碰撞,也欢迎小伙伴加入小5的个人圈,分享个人十年经验和答疑解惑!
学习Python也有一年多了,个人的学习方式比较注重实在,因为有C#语言的基础,所以很多原理以及解题思路都是想通的!

http://www.hkea.cn/news/824315/

相关文章:

  • 固定ip做网站西安网站建设推广
  • 做响应式网站好不好软文发布门户网站
  • 重庆做网站建设的公司哪家好最基本的网站设计
  • 长春网站制作wang网站营销软文
  • discuz 网站搬家市场营销的策划方案
  • 做婚礼网站的公司简介seo网站关键词优化软件
  • 哪些客户需要做网站推广平台排名前十名
  • 团购的网站扣佣金分录怎么做厦门百度竞价
  • 国家疫情最新政策麒麟seo外推软件
  • 河南第二波疫情最新消息淘宝关键词优化技巧教程
  • 优化好的网站做企业网站百度代理公司
  • 外贸b2c网站如何做推广百度电话人工服务
  • 百度怎样做网站并宣传网站2023上海又出现疫情了
  • wordpress后台登录慢阳山网站seo
  • 深圳网站建设企网络推广运营途径
  • 给自己女朋友做的网站yandex搜索引擎
  • 购物网站建设教程怎么在网上做广告宣传
  • 冠县做网站推广网站怎么制作
  • 开封 网站建设苹果被曝开发搜索引擎对标谷歌
  • 东莞虎门高铁站百度客户端电脑版下载
  • 建网站怎么挣钱的学seo推广
  • 自如网站做的好 服务哪个网站学seo是免费的
  • 国外网站阻止国内访问怎么做竞价推广工具
  • 建设一个网站需要哪些方面的开支百度人工客服
  • 品牌网站建设-建站之路最新疫情新闻100字
  • 东莞网站优化科技有限公司怀柔网站整站优化公司
  • 郑州网站建设联系方式外链是什么意思
  • 用wordpress做网站教程电脑优化大师有用吗
  • 佛山企业网站制作今日热点新闻事件
  • 企业网站网络推广黑帽seo培训