Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >尝试使用带有偏移量的PyCryptodome AES ECB解密

尝试使用带有偏移量的PyCryptodome AES ECB解密
EN

Stack Overflow用户
提问于 2020-04-24 23:43:17
回答 1查看 487关注 0票数 0

作为对此的一点背景介绍,我正在将一个java文件转换为python,并且正在执行最后一个操作。我在大约200LOC,所以它使它更边缘的座位…

无论如何,在java中,操作是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cipher cipher = Cipher.getInstance("AES/ecb/nopadding");
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keys[i], "AES"));

//doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)
cipher.doFinal(save, saveOffset, 16, save, saveOffset);

在python中,我有这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from Crypto.Cipher import AES
cipher = AES.new(bytes(keys[i]), AES.MODE_ECB)
cipher.decrypt(?????)

这段代码取自decrypt()下的包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:Parameters:
  ciphertext : bytes/bytearray/memoryview
    The piece of data to decrypt.
    The length must be multiple of the cipher block length.
:Keywords:
  output : bytearray/memoryview
    The location where the plaintext must be written to.
    If ``None``, the plaintext is returned.
:Return:
  If ``output`` is ``None``, the plaintext is returned as ``bytes``.
  Otherwise, ``None``.

正如您所看到的,.decrypt()实际上并没有偏移量的输入,但是我想知道是否有什么方法可以解决这个问题?

这就是为什么我决定发布,所以,我可以发送:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
temp_bytes = save[offset]
temp_decrypt = cipher.decrypt(temp_bytes)
save[offset] = temp_decrypt

或者在解密时,它是否使用整个文件作为上下文,而我将得到错误的输出?我很乐意这样做,并测试它,但输出只是胡言乱语,我将不得不编写另一个程序来解析(另一个java到python项目)。

EN

回答 1

Stack Overflow用户

发布于 2020-04-25 00:49:29

最终起作用的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
save[saveOffset:saveOffset+16] = cipher.decrypt(save[saveOffset:saveOffset+16])

没想到它能这么容易地工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61419099

复制
相关文章
java使用AES加密解密 AES-128-ECB加密
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Administrator * */ public class AES { // 加密 public static String Encrypt(String sSrc, String sKey) throws Exce
故久
2020/06/09
3.4K0
java使用AES加密解密 AES-128-ECB加密
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Administrator * */ public class AES { // 加密 public static String Encrypt(String sSrc, String sKey) throws Excep
故久
2020/06/04
4K0
[1155]python--AES加密
安装:pip install pycryptodome -i https://pypi.douban.com/simple
周小董
2022/08/23
9960
nodejs使用aes-128-ecb加密如何在c#中解密
却发现C#端怎么也解密不了,一直报错,改了一整天,后来终于发现,nodejs端加密用的key其实在使用之前已经使用md5加密了一次,而这个操作是默认的,暂时没发现有配置可以默认去掉,服务端如果需要使用这个key解密,则需要也同样使用MD5加密
frontoldman
2019/09/03
2.6K0
Android网络数据传输安全——AES加密解密(ECB模式)
严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。加密过程中使用的密钥是由Rijndael密钥生成方案产生。 大多数AES计算是在一个特别的有限域完成的。 AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤: AddRoundKey — 矩阵中的每一个字节都与该次轮秘钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。 SubBytes — 通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。 ShiftRows — 将矩阵中的每个横列进行循环式移位。 MixColumns — 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。 最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。
程思扬
2022/01/10
1.4K0
【常见加密方法汇总】Python对三要素进行加密实现
平常我们经常需要对数据进行传输,而有些敏感信息的传输需要进行加密处理,防止数据泄露。
阿黎逸阳
2023/09/26
2.1K0
【常见加密方法汇总】Python对三要素进行加密实现
常见的加密方式之python实现
编码与解码 通常所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。将字符串和Bytes互相转换可以使用encode()和decode()方法。
MIKE笔记
2023/03/23
1.4K0
常见的加密方式之python实现
PHP AES(运算模式 ECB,填充方式PKCS7) 加密解密
class Security{ public static function encrypt($input, $key) { if (substr(PHP_VERSION, 0, 1) == '7') { return self::opensslEncrypt($input,$key); }else{ return self::mcryptEncrypt($input,$key)
IT工作者
2022/02/25
2K0
python aes ecb_python简单加密
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164810.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
7660
python笔记43-加解密AES/CBC/pkcs7padding
有些公司对接口的安全要求比较高,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回。
上海-悠悠
2019/10/24
3.6K0
带你手撕 AES算法在Python中的使用
记录一下AES加解密在python中的使用 研究AES之前先了解下常用的md5加密,既。然谈到md5,就必须要知道python3中digest()和hexdigest()区别。
Python攻城狮
2020/12/28
2.1K0
Python爬虫进阶必备 | 关于AES 的案例分析与总结
可以看到这里 password、email 是加密的结果,_token 的值可以直接在页面里找到。
咸鱼学Python
2019/10/09
1.1K0
Python爬虫进阶必备 | 关于AES 的案例分析与总结
python3.6 实现AES加密---
前端日子写完的Python入库脚本,通过直接读取配置文件的内容(包含了数据库的ip,数据库的用户名,数据库的密码),因为配置文件中的数据库密码是明文显示的,所以不太安全,由此对其进行加密。
py3study
2020/01/10
2.7K0
python3.6 实现AES加密---
Python爬虫进阶必备 | 关于AES 的案例分析与总结
可以看到这里 password、email 是加密的结果,_token 的值可以直接在页面里找到。
龙哥
2020/02/27
5670
Java使用AES加密解密
AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中
二十三年蝉
2018/08/01
5K0
python aes 加密
python 进行aes 加密报错, windows pip install pycryptodome 安装Crypto
py3study
2020/01/16
1.5K0
AES加密/解密
AES加密/解密算法是一种可逆的对称加密算法,这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥,一般用于服务端对服务端之间对数据进行加密/解密。它是一种为了替代原先DES、3DES而建立的高级加密标准(Advanced Encryption Standard)。
arnodev
2022/10/21
8.5K0
3DES_ECB_加密解密
import java.util.ArrayList; import java.util.List; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class SecretUtils { //根秘钥 final static byte[]
py3study
2020/01/08
1.3K0
AES 加密解密示例(walker)
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael之名命之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 "Rhine doll"。)
py3study
2020/01/06
2.3K0
点击加载更多

相似问题

使用aes-128-ecb的AES解密问题

26

用pycryptodome解密Python 256 AES

126

AES 128 ECB解密nodejs

17

AES/ECB解密数据的大小

11

使用AES/ECB/无填充的加密/解密

28
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文