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

网站推广软件工具公众号开发合同

网站推广软件工具,公众号开发合同,代写简历哪个平台比较好,wordpress英文版登陆🍦🍦写这篇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.yayakq.cn/news/46207/

相关文章:

  • 带后台的html网站源码建设银行网站认证
  • 昌平做网站cms
  • 网站如何设计搜索框网站建设框架
  • 东阳建设网站wordpress悬浮窗
  • 如何建设网站制作平台呼和浩特商城网站建设
  • 网站引用优酷齐博企业网站
  • icp备案添加网站衡水网站建设浩森宇特
  • 告状书放网站上怎么做seo服务商排名
  • 广州联享网站建设公司怎么样公司网页邮箱
  • 郑州做手机网站建设用flask做的网站
  • 网站广告推广技巧分享一流的免费网站建设
  • 直播教育网站建设女生学计算机应用技术可以做什么
  • 常用企业客户资料网站九亭微信网站建设
  • 打开网站弹出qq对话框杭州网站建设公司排名
  • 刷百度指数网站电子商务网站策划书
  • 商城网站要怎样设计公司网站建设费如何入账
  • 建设广告联盟网站关键词优化需要注意
  • 深圳西乡建网站云南省做网站开发的公司排名
  • 做公司网站主要需要什么网站连接数据库失败
  • 阿里云1m宽带做网站卡吗有没有手机可以看的网站免费的
  • 广州市网站建设公司兰州新区规划建设管理局网站
  • 上海地产网站建设郭仓镇做网站
  • 网站难做吗高端品牌服装有哪些
  • 做外国网用哪些网站域名注册1元
  • 齐河专业企业网站建设广东深圳市
  • 济南众筹网站建设dedecms是什么
  • 天津平台网站建设报价js 调用本地wordpress
  • 四川省建设厅网站官网个人登录网站内做动图
  • 高等学校处网站建设总结临海网站建设
  • 九寨沟网站开发的背景建网页网站