python加密解密算法_python3 常见解密加密算法实例分析【base64、MD5等】

本文实例讲述了python3 常见解密加密算法。分享给大家供大家参考,具体如下:

一.使用base64

Base64编码,64指A-Z、a-z、0-9、+和/这64个字符,还有“=”号不属于编码字符,而是填充字符。

优点:方法简单

缺点:不保险,别人拿到密文可以自己解密出明文

编码原理:将3个字节转换成4个字节((3 X 8)=24=(4X6)),先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了。

解码原理:将4个字节转换成3个字节,先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位,这样就还原了。

Python3中base64模块与Python2使用方法有了明显的不一样,接下来简要介绍下base64模块。

Python 3.5.2+ (default, Aug 5 2016, 08:07:14)

[GCC 6.1.1 20160724] on linux

Type "help", "copyright", "credits" or "license" for more information.

首先导入base64模块

>>> import base64

>>> my_str="hello"

然后把字符串转码为UTF-8格式:

>>> utf_str=my_str.encode(encoding="utf-8")

>>> utf_str

b"hello"

我们试着用Base64方式加密:

>>> word=base64.b64encode(utf_str)

>>> word

b"aGVsbG8="

最后用Base64方式解密:

>>> hello=base64.b64decode(word.decode())

>>> hello

b"hello"

>>> hello.decode()

"hello"

可以看到,已经成功解密出来!

二.使用pycrypto

Python有个专门的加密解密工具包pycropto,这个包里面实现了MD2,MD4,MD5,RIPEMD,SHA1,SHA256等加密算法。

>>> from Crypto.Hash import MD5

>>> obj = MD5.new()

>>> obj.update(b"hello")

>>> obj.hexdigest()

>>> obj.hexdigest()

"5d41402abc4b2a76b9719d911017c592"

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):http://tools.jb51.net/password/txt_encode

MD5在线加密工具:http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:http://tools.jb51.net/password/sha_encode

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python文件与目录操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3DES (Triple Data Encryption Standard) 是一种对称加密算法,它使用三个不同的密钥进行加密。下面是一个使用 Python 实现 3DES 加密解密算法的示例代码: ```python from Crypto.Cipher import DES3 import base64 def encrypt_3des(key, data): # 将密钥转换为字节类型 key = key.encode('utf-8') # 创建 3DES 加密器 cipher = DES3.new(key, DES3.MODE_ECB) # 将数据转换为字节类型 data = data.encode('utf-8') # 使用 3DES 加密器加密数据 encrypted_data = cipher.encrypt(data) # 将加密后的数据进行 base64 编码后返回 return base64.b64encode(encrypted_data).decode('utf-8') def decrypt_3des(key, encrypted_data): # 将密钥转换为字节类型 key = key.encode('utf-8') # 创建 3DES 解密器 cipher = DES3.new(key, DES3.MODE_ECB) # 将加密后的数据进行 base64 解码 encrypted_data = base64.b64decode(encrypted_data) # 使用 3DES 解密解密数据 decrypted_data = cipher.decrypt(encrypted_data) # 将解密后的数据转换为字符串类型并返回 return decrypted_data.decode('utf-8') ``` 使用示例: ```python key = '12345678901234567890123456789012' data = 'Hello, World!' encrypted_data = encrypt_3des(key, data) print('加密后的数据:', encrypted_data) decrypted_data = decrypt_3des(key, encrypted_data) print('解密后的数据:', decrypted_data) ``` 输出结果: ``` 加密后的数据: uF4LwX8JqfJbdSFV8iWj8Q== 解密后的数据: Hello, World! ``` 注意:以上代码使用了 PyCryptodome 库来实现 3DES 加密解密,需要先安装该库。可以使用以下命令来安装: ``` pip install pycryptodome ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值