Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密

Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密
一、先看一个简单加密,解密实现 1.1 加密 /** * content: 加密内容 * slatKey: 加密的盐,16位字符串 * vectorKey: 加密的向量,16位字符串 */ public String encrypt(String content, String slatKey, String vectorKey) throws Exception { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); SecretKey secretKey = new SecretKeySpec(s...

python2 与 python3 str bytes问题

python2 与 python3  str bytes问题
1 2 3 4 5 6 >>> s = '编程' >>> print s 编程 >>> s '\xe7\xbc\x96\xe7\xa8\x8b' >>>>>> s = '编程' >>> print s 编程 >>> s '\xe7\xbc\x96\xe7\xa8\x8b' >>> 在python2中直接调用字符串的变量的话,会打印其bytes(可以理解成用16进制表示字符串的内存地址,本质还是二进制)。在p...

JAVA AES算法

JAVA AES算法
一.前言 AES(Advanced Encryption Standard),高级加密标准,是美国政府用于替换DES的一种加密算法标准,Java SDK中包含了部分AES的实现,但javadoc对于算法的描述非常少,本文将解释Java AES实现的使用和原理。 二.示例代码 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class AesECB { public static byte[] Encrypt(byte[] text...

pyDes 实现 Python 版的 AES DES 对称加密/解密

pyDes 实现 Python 版的 AES DES 对称加密/解密
手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓了两下 pyDes 貌似很方便,不过据网上其他同学测试说 PyCrypto 性能要比 pyDes 高一个数量级,这里我没有做具体性能测试,也没有选用 PyCrypto 主要原因有三: (1)PyCrypto 在 windows 下依赖 VC++9.0,安装麻烦 (2)PyCrypto 默认不支持 padmode,且对秘钥以及偏转向量长度有...

pyDes库 实现python的des加密

pyDes库 实现python的des加密
如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式。 1、Windows下安装 下载后pyDes-x.x.x.zip并解压后,里面有setup.py文件,使用命令 setup.py --help可查看详细使用。 你可以使用命令 python setup.py install 命令安装,也可以直接将压缩包内的pyDes.py拷贝到本地的python lib库下直接开始使用 2、 使用 使用参数如下(拷贝自上述...

Python 使用 DES 加密\解密 PAD_PKCS5

Python 使用 DES 加密\解密 PAD_PKCS5
最近要和Java组做加密对接,最终采用的是DES加密方式,加密之后的字节通过base64转化成字符串,再通过jwt加密之后传输。 本篇文章单纯记录一下Python中DES加密的使用方式,很简单,直接看代码: 需要pyDes库; pip install pyDes 秘钥; 只能是8位字符串 填充方式; 如果要和Java对接,这个要商议好,如果自己试验玩玩就无所谓了 1 2 3 4 5 6 7 8 9 10 11 12 # ...

TypeError: can only concatenate str (not “bytes”) to str

TypeError: can only concatenate str (not “bytes”) to str
python报错:TypeError: can only concatenate str (not "bytes") to str 如下图: can only concatenate str (not "bytes") to str     #接收请求数据 def search(request): request.encoding = 'utf-8' if 'q' in request.GET: message = '你搜索的内容为: ' +request.GET['q'].encode('utf-8') else: message = '你提交了空...

Python 实现 AES 加密 进行 PKCS5Padding 的填充

Python 实现 AES 加密 进行 PKCS5Padding 的填充
0x00 Python 需要导入的模块 from Crypto.Cipher import AES from Crypto.Util.Padding import pad from binascii import b2a_hex, a2b_hex 0x01 AES加密代码 def AES_encrypt(secret_key,data): """ :param secret_key [str] : 加密秘钥 :param data [str] : 需要加密数据 :return [str] : """ BLOCK_SIZE = 16 # Bytes # ...

Python 使用DES加密(PKCS5Padding)

Python 使用DES加密(PKCS5Padding)
今天在Python里面简单的做了一下DES算法需要的padding方法,Java方面使用的Padding方式是PKCS5,按照标准,PKCS5Pading的方式是在加密的字符串后面补齐,使得加密字符串的长度为8的整数倍。 比如ABCDEF长度为6,需要补两个字符,如果采用0Padding的方式则缺多少就补多少'x00',在需要的是PKCS5Padding,简单的说就是需要补几个就补几个几8-6=2 需要补2个,就补2个2括号中的...

Python Crypto AES加密模式踩坑记

Python Crypto AES加密模式踩坑记
前言: demo code使用的lib 版本为 :pycryptodome 3.10.1 写了一小段AES加密的demo code, 运行起来错误不断,花费了半天时间逐一解决。分享出来,希望能对大家有所帮助! 同时,关于AES 加密模式的说明可以参考这篇文章,讲的很清晰:https://blog.csdn.net/slslslyxz/article/details/111232040 问题一:decrypt() cannot be called after encrypt() 运行时报告:Exceptio...