前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java的字节(byte)数组与Python3中的字节类型负值问题

Java的字节(byte)数组与Python3中的字节类型负值问题

作者头像
程序新视界
发布于 2023-04-12 01:22:40
发布于 2023-04-12 01:22:40
1.4K00
代码可运行
举报
文章被收录于专栏:丑胖侠丑胖侠
运行总次数:0
代码可运行

Java中,字节数组可以存放负值,这是因为Java的byte类型的取值范围为-128到127之间,而在Python3中,bytes的取值范围为0到256。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Java: -127~128

Python:0~256

在某些场景下,比如AES加密时,会用到Key、IV(偏移量)等参数值的定义,在Java中有可能是如下的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static byte[] iv = new byte[] { 1, 3, 8, 22, -13, 125, -40, -124, -27, -10, 57, 13, 46, 22, -3, 5 };

此时如果需要通过Python3来实现同样的加密算法则会出现一个问题,就是上面Java代码中的负值无法在Python3中直接表示。

面对这种情况,在Python3中可用如下方法进行转换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iv = [1, 3, 8, 22, -13, 125, -40, -124, -27, -10, 57, 13, 46, 22, -3, 5]
iv_byte = bytes(i % 256 for i in iv)

之后在传入Python中对应的AES算法函数当中,相应的加密结果便一致了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
盘点Python加密解密模块hashlib的7种加密算法
在程序中我们经常可以看到有很多的加密算法,比如说MD5 sha1等,今天我们就来了解下这下加密算法的吧,在了解之前我们需要知道一个模块嘛就是hashlib,他就是目前Python一个提供字符加密的模块,它加密的字符类型为二进制编码,所以直接加密字符串会报错。
Python进阶者
2021/04/19
2.2K0
盘点Python加密解密模块hashlib的7种加密算法
CTF逆向--.NET与Python篇
题目(来源:Jarvis-OJ): Classical Crackme Classical CrackMe2 FindKey Login Classical Crackme 首先查壳 没有壳,不过发现
安恒网络空间安全讲武堂
2018/02/23
2.7K0
CTF逆向--.NET与Python篇
当爬虫工程师遇到 CTF丨B 站 1024 安全攻防题解
最近看到哔哩哔哩上线了一个 1024 程序员节的活动,其中有一个技术对抗赛,对抗赛又分为算法与安全答题和安全攻防挑战赛,其中安全攻防挑战赛里面有 7 个题,其中有 APP 逆向和解密的题目,作为爬虫工程师,逆向分析的技能也是必须要有的,于是 K 哥就以爬虫工程师的角度,尝试做了一下其中逆向相关的两个题,发现逆向不是很难,分享一下思路给大家。
K哥爬虫
2021/10/27
6910
当爬虫工程师遇到 CTF丨B 站 1024 安全攻防题解
Java对称加密算法
1、DES 已破解,不再安全,基本没有企业在用了,是对称加密算法的基石,具有学习价值。密钥长度56(JDK)、56/64(BC)。
硕人其颀
2020/06/01
1.9K0
Java对称加密算法
常见的加密方式之python实现
编码与解码 通常所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。将字符串和Bytes互相转换可以使用encode()和decode()方法。
MIKE笔记
2023/03/23
1.5K0
常见的加密方式之python实现
python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总
都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy
小小咸鱼YwY
2020/11/24
4.9K0
PHP之AES加密算法
1) 确保都使用MCRYPT_MODE_CBC; 2) 确保明文填充都使用的是Pkcs5; 3) 加密key在AES_128长度必须是16, 24, 或者 32 字节(bytes);如果不够长必须填充,过长必须截取,建议直接md5; 4) 加密向量iv与加密key有同样的约定,但在ECB可以忽略该值(用不到)。 5) 注意加密结果建议都使用base64编码。
php007
2019/08/05
4.3K0
PHP之AES加密算法
python hashlib_Python hashlib模块实例使用详解
这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
全栈程序员站长
2022/09/06
3770
哈希算法是对称算法还是非对称算法_对称加密和非对称加密原理
作用:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法的目的:为了验证原始数据是否被篡改。 哈希算法最重要的特点就是: 相同的输入一定得到相同的输出; 不同的输入大概率得到不同的输出。
全栈程序员站长
2022/11/01
1.2K0
深入理解字符串和字节数组转换
      前文中,论及字符串和字节数组的转换,虽然能够找到某个代码页,保证转换的可逆,但是在实际处理中,仍然还有一些细节问题需要注意.       最重要的,就是转换得到的字符串,每个字符的编码和原来的编码可能并不相同,以代码页437为例,127以下的,转换后的字符和转换前的一样,而后面的就完全不同了。下面是437代码页的转换字符和原来内码的对照表。 -             c     {维数:[256]} int[]               [0]   0     int           
用户1075292
2018/01/23
9520
浅谈DES加密算法
一、DES加密算法介绍 1、要求密钥必须是8个字节,即64bit长度 2、因为密钥是byte[8] , 代表字符串也可以是非可见的字节,可以与Base64编码算法一起使用 3、加密、解密都需要通过字节数组作为数据和密钥进行处理 二、对称加密 DES加密算法属于对称加密。 即利用指定的密钥,按照密码的长度截取数据,分成数据块,和密钥进行复杂的移位、算数运算或者数据处理等操作,形成只有特定的密码才能够解开的数据。 加密与解密用的是同一个密钥 三、相关类 1、Cipher: Java/Android要使用任何加密
听着music睡
2018/05/18
1.9K0
加密与安全_探索常用编码算法
计算机加密技术旨在实现上述目标。现代计算机密码学建立在严格的数学理论基础上,并逐渐发展成为一门科学。对于大多数开发者来说,设计安全的加密算法是一项艰巨的任务,验证加密算法的安全性则更加困难。目前认为安全的加密算法也只是尚未被攻破。因此,为了编写安全的计算机程序,我们应遵循以下原则:
小小工匠
2024/05/26
1740
加密与安全_探索常用编码算法
Python与常见加密方式
数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对应的人手上。
润森
2019/08/29
2K0
Python与常见加密方式
加密与安全_AES & RSA 密钥对生成及PEM格式的代码实现
在现代信息安全中,加密算法扮演着至关重要的角色。今天我们来聊聊两种常见的加密算法——RSA和AES,用通俗易懂的语言带大家理解它们的核心原理和优缺点。
小小工匠
2024/05/27
7170
[Java][Java加密与解密]《对称加密简单概念与代码实现》
将要保护的数据用某种算法进行处理,处理后的数据成为密文。 加密算法公开,但是密钥不公开,密钥可以理解为开锁的数字密码,不知道密码就无法进行解密数据。目前常用的对称加密算法有AES。 且AES有AES-128、AES-256标准。 简单来讲就是密钥长度的不一样,AES-128采用16字节的密钥。AES-256采用32字节的密钥更安全。
BinGo_Blog
2022/11/01
5370
Go 加密解密算法总结
加密解密在实际开发中应用比较广泛,常用加解密分为:“对称式”、“非对称式”和”数字签名“。
孤烟
2020/09/27
3K0
python3验证码机器学习 python3验证码机器学习
pip3 install pillow or easy_install Pillow
机器学习和大数据挖掘
2019/07/02
5260
加密与安全_探索对称加密算法
对称加密算法是一种加密技术,使用相同的密钥来进行加密和解密数据。在这种算法中,发送方使用密钥将明文(未加密的数据)转换为密文(加密的数据),而接收方使用相同的密钥将密文还原为明文。
小小工匠
2024/05/26
2180
加密与安全_探索对称加密算法
Java 中的 AES 加密详解
AES(Advanced Encryption Standard)是目前广泛使用的一种对称加密算法。它的加密速度快、强度高,被广泛应用于文件加密、传输加密等领域。本文将带你一步一步了解 Java 中的 AES 加密,包括 分组模式(Block Mode) 和 填充方式(Padding) 的概念,并结合代码示例说明其使用。
井九
2024/11/19
2020
Java 中的 AES 加密详解
aes加密算法python版本
        高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:下面简单介绍下各个部分的作用与意义:明文P没有经过加密的数据。密钥K用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生。
红目香薰
2023/02/02
1.2K0
aes加密算法python版本
相关推荐
盘点Python加密解密模块hashlib的7种加密算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验