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

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

作者头像
程序新视界
发布2023-04-12 09:22:40
1.3K0
发布2023-04-12 09:22:40
举报
文章被收录于专栏:丑胖侠

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

代码语言:javascript
复制
Java: -127~128

Python:0~256

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

代码语言:javascript
复制
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
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档