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 ...
随机推荐
- android的多次点击事件的实现(有源码)
三次点击事件的原理图:数组的复制(android源码的调用): 下面就是第一步: 创建long数组,里面的数字代表点击的次数. 下面是主要代码实现: system.arraycopy();里面的参数描 ...
- Json格式化工具 JsonViewer下载
免安装版,分享链接永久有效~! 云盘下载地址: http://cloud.suning.com/cloud-web/share/link.htm?sk=401f784782751055ddc21cdb ...
- windows下用vscode写C++
[本文参考:https://www.cnblogs.com/zhuzhenwei918/p/9057289.html 和 https://www.zhihu.com/question/3031589 ...
- linux中shell script的追踪与调试
Shell调试篇 sh [-nvx] scripts.sh -n:不要执行script,仅查询语法的问题: -v:在执行script前,先将script的内容输出到屏幕上: -x:将使用到的scrip ...
- POJ-1190-生日蛋糕-DFS(深搜)-枚举-多重剪枝
题目链接: 这个题目非常好,有难度:能够好好的多做做: #include<iostream> #include<string> #include<cstdio> # ...
- java监控工具jstatd-windows
Monitors Java Virtual Machines (JVMs) and enables remote monitoring tools to attach to JVMs. This co ...
- Docker 三大核心工具
Docker-machineDocker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox. Digital Oc ...
- Struts2学习八----------接收参数
© 版权声明:本文为博主原创文章,转载请注明出处 接收参数 - 使用Action的属性接收参数 - 使用Domain Model接收参数 - 使用ModelDriven接收参数 实例 1.项目结构 2 ...
- Struts2学习六----------默认Action
© 版权声明:本文为博主原创文章,转载请注明出处 默认Action - 当访问action不存在时,可通过指定默认action的方式避免出现错误代码页面 - 使用default-action-ref指 ...
- jquery插件中使用ajax并且获取使用插件的对象
jquery插件中使用ajax后无法在里面获取this 解决办法是在函数内使用ajax前声明变量 $this=this 然后再ajax中使用$this