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 ...
随机推荐
- mysql之select,insert,delete,update
写在前面 上篇文章学习了创建数据库和数据表,这篇文章将学习对数据表的增删改查操作. 系列文章 mysql之创建数据库,创建数据表 一个例子 上篇文章中,创建了数据库和数据表,数据表中还没有数据,这里我 ...
- Linux 双网卡 不同网段 网络互通
环境如下: 现状:一台linux主机上有两个网卡eth0 和eth1 ,机器能访问192网的服务资源,但不能访问10网段的资源. 要求:linux能通过eth1访问10网段的资源 路由: 网卡: 操作 ...
- Android无需权限显示悬浮窗, 兼谈逆向分析app
前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...
- ubuntu 添加用户
sudo useradd 用户名 创建用户 sudo passwd 用户名 修改用户密码 添加sudo权限 sudo usermod -aG sudo(要添加的用户组,也可以是root) 用户名 su ...
- 【重点突破】——SVG技术动态随机绘制圆形
一.引言 在学习Canvas绘图技术时,做的是随机验证码的例子,在学习SVG绘图技术时,同样也有一个随机绘制的例子——动态随机绘制圆形.这个练习,即综合了多种SVG技术的知识点,又很具有艺术感,随机生 ...
- EclipseADT(4.2) 安装 STS(spring )
因为ADT 版本是4.2, 网上找了一圈 from: https://spring.io/blog/2012/03/14/early-access-springsource-tool-suite-fo ...
- 第十二题 Merge Sorted Array
Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assume th ...
- Solidworks拖动装配体的时候物资动力有什么用
Solidworks物资动力就是模拟真实的场景,你在拖动或旋转零件的时候会和周围的零件碰撞,有相互力的作用. 1 标准拖动 2 碰撞检查 3 选择物资动力(零件上面的黑白相间小圆表示物体重心) ...
- vue.js+koa2项目实战(二)创建 HeadBar 组件
elementUI界面布局 1.创建 HeadBar 组件 HeadBar.vue <template> <el-row> <el-col :span="2&q ...
- DIV旋转的測试代码
<html> <head> <style type="text/css"> .rat0 { -webkit-transform: rotate( ...