PYTHON加密解密字符串
依赖包安装部分
- 安装依赖包: pip install pycryptodome
- 在你的python环境中的下图红框路径中找到 crypto 将其改成 Crypto
代码部分
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @Date : 2018-11-27 17:21:23
- # @Author : Sheldon (thisisscret@qq.com)
- # @blogs : 谢耳朵的派森笔记
- # @Link : https://www.cnblogs.com/shld/
- from Crypto.Cipher import AES
- from binascii import b2a_base64, a2b_base64
- def rpad(text, divisor: int, suffix):
- remain = len(text) % divisor
- if remain > 0:
- text += suffix * (divisor - remain)
- return text
- def encrypt(text, salt, key):
- fmtkey, fmtiv = map(lambda s: s.encode()[:16].ljust(16, b'\0'), (key, salt))
- cryptor = AES.new(fmtkey, AES.MODE_CBC, fmtiv)
- fmttext = rpad(text.encode(), 16, b'\0')
- ciphertext = cryptor.encrypt(fmttext)
- return str(b2a_base64(ciphertext))[2:-3].rstrip('=')
- def decrypt(text, salt, key):
- fmtkey, fmtiv = map(lambda s: s.encode()[:16].ljust(16, b'\0'), (key, salt))
- cryptor = AES.new(fmtkey, AES.MODE_CBC, fmtiv)
- fmttext = rpad(text, 4, '=')
- return cryptor.decrypt(a2b_base64(fmttext)).rstrip(b'\0').decode()
- if __name__ == "__main__":
- # key,salt应为16字节(汉字3字节,字母1字节),不足的自动补空格,超过的取前16字节
- ciphertext = encrypt("我们的祖国是花园~", "hello", "world")
- plaintext = decrypt(ciphertext, "hello", "world")
PYTHON加密解密字符串的更多相关文章
- django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子
1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...
- PHP的加密解密字符串函数
程序中经常使用的PHP加密解密字符串函数 代码如下: /********************************************************************* 函数 ...
- php 加密解密字符串
/********************************************************************* 函数名称:encrypt 函数作用:加密解密字符串 使用方 ...
- Java加密解密字符串
http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串 旧文重发:http://www.blogjava ...
- PHP_加密解密字符串
PHP_加密解密字符串.php <?php //加解密字符串函数,可以加密中文 /* //加密 echo $encode = authcode('爱迪生', 'ENCODE', '3'); // ...
- python 加密 解密 签名 验证签名 公钥 私钥 非对称加密 RSA
加密与解密,这很重要,我们已经可以用pypcap+npcap简单嗅探到网络中的数据包了.而这个工具其实可以嗅探到更多的数据.如果我们和别人之间传输的数据被别人嗅探到,那么信息泄漏,信息被篡改,将给我们 ...
- PHP加密解密字符串
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...
- [DEncrypt] RSACryption--RSA加密/解密字符串 (转载)
点击下载 RSACryption.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.RSACryption RSA 的密钥产生2.RSACryption RSA的加密函数3.RSACrypt ...
- .net core 使用MD5加密解密字符串
/// <summary> /// 加密 /// </summary> /// <param name="Text">要加密的文本</pa ...
随机推荐
- centos使用yum安装gcc
yum -y install gccyum -y install gcc-c++yum install make -- 或者yum groupinstall "Development Too ...
- 剑指Offer面试题51(Java版):数组中反复的数字
题目:在一个长度为n的数组里的全部数字都在0到n-1的范围内. 数组中某些数字是反复的,但不知道有几个数字反复了.也不知道每一个数字反复的次数.请找出数组中随意一个反复的数字. 比如假设输入长度为7的 ...
- Aliyun-CentOS7.3 Init
Aliyun-CentOS7.3 Init 一.概述 查看系统版本 $ cat /etc/redhat-release $ uname -a 修改主机名 $ vi /etc/hostname $ re ...
- IO流中文件和文件夹的删除程序举例
/* * 删除功能(无论是文件夹还是文件都是用delete方法,仅仅能一级一级的删除.):public boolean delete() * * 注意: * A:假设你创建文件或者目录忘了写盘符路径, ...
- WeakReference &&reference quene &&GC
在了解WeakReference之前,先给出一段简单的代码: public class WeakReferenceTest {public static void main(String[] args ...
- axios 异步加载 导致 {{}} 中变量为 undefined 报错 的 解决方案
情景:axios 异步加载数据,当返回数据为一个 数组 时,双花括号中 这样写 会报错 {{informationDetail[0].img}} 解决方案一:通过 v-if 进行判断 解决方案二:单独 ...
- 【Python】写入文件
1.1写入空文件 若将文本写入文件,在调用open()时候需要提供另外一个实参,告诉Python你要写入打开的文件 file_path = 'txt\MyFavoriteFruit.txt' with ...
- 新安装的金蝶K3软件,初始化后,在基础资料中对于币别,科目,部门,客户等资料均无法新增,无法引出,等操作,K3CASysSet.dll
新装K3,新建的帐套.导入科目点菜单或新增button均无反应,币别.客户等辅助核算项目也新增也无法保存. 在电脑上新安装的金蝶K3软件.初始化后.在基础资料中对于币别,科目,部门,客户等资料均无法新 ...
- <LeetCode OJ> 189. Rotate Array
189. Rotate Array Total Accepted: 55073 Total Submissions: 278176 Difficulty: Easy Rotate an array o ...
- VueJS实现双向数据绑定:v-model
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...