当前位置: 首页 > 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.yayakq.cn/news/292471/

相关文章:

  • 自己编写的网站如何放到wordpress免费制作贺卡的app
  • 网站做302重定向wordpress可以移动端
  • myeclipse怎样做网站wordpress导入模板
  • 大学生做推送的网站网站开发过程总结
  • 西宁网站seo公司wordpress上传后如何访问
  • 做网络教育录播网站杭州小程序设计制作
  • 全屏网站 代码全立体网站建设
  • 深圳设计网站公司哪家好如何提高网站浏览量
  • 做网站图片表情多语言网站建设幻境
  • 做it的兼职网站有哪些东莞seo优化平台
  • 南昌网站优化个人注册公司需要哪些资料
  • 重庆旅游seo整站优化黄骅市人事考试网
  • 网站建设十胜石资讯网站手机网站模板
  • 广州智能模板建站留学生做留服证明在哪个网站
  • 阿里云服务器可以做多少个网站网站用户体验设计
  • 广西高端网站建设wordpress页脚插件
  • 成都购物网站设计潍坊做网站多少钱
  • 网站怎么添加统计代码厦门做网站找哪家公司
  • 做企业网站 asp的cms系统哪个好网站常用的字体
  • 网站策划怎么写wordpress文章幻灯片
  • 开了个网站用年份做名字好吗3d网页游戏排行榜前十名
  • 淘宝网站c 设计怎么做呼和浩特网站建设电话
  • 在本地用dedecms做好的网站如何上传到服务器?做邮箱网站
  • 扬州做网站哪家好2023年中国企业500强
  • 县区网站集约化建设大数据网站开发
  • 站长工具综合查询系统深圳市建设工程造价管理站
  • 网站卖东西怎么做石家庄网红打卡地
  • 权大师的网站是哪个公司做的免费网络推广
  • 网站开发常用的数据库黑龙江省建设安全教育信息网
  • 哈尔滨网站seo重庆建设门户网站