python - 如何在python3中应用整数乘以字节变量?
问题描述
我在 Python3 中使用了一个名为fastecdsa的椭圆曲线密码库。我需要将整数 ∈ ℤ (其中是曲线的阶数)乘以以字节为单位的变量 z。例如:
d = 28521545799876732050641018768368512903213511626845294786203503879392791060212
z = b'\xf7LC\xf0\xd5\xc4z\xb7\x84\x02\xd7f\x1b\x1a\xf3\xcf@\xfaf\xd0I\xb0l+t\xf9\x86\xf4\x14(\x00x'
但是在库中,我只能将一个整数乘以曲线上的一个点。我怎样才能应用这个乘法?
解决方案
您可以使用int.from_bytes
将其转换为 int -
d = 28521545799876732050641018768368512903213511626845294786203503879392791060212
z = b'\xf7LC\xf0\xd5\xc4z\xb7\x84\x02\xd7f\x1b\x1a\xf3\xcf@\xfaf\xd0I\xb0l+t\xf9\x86\xf4\x14(\x00x'
z_int = int.from_bytes(z,'big')
print(z_int)
111856022886894735268286046795586803147921415655418728750948058279775245435000
然后,在乘法之后,如果需要,您可以使用int.to_bytes()
-再次将输出转换为字节
z_int.to_bytes(32, 'big') #change z_int to the output of multiplication
b'\xf7LC\xf0\xd5\xc4z\xb7\x84\x02\xd7f\x1b\x1a\xf3\xcf@\xfaf\xd0I\xb0l+t\xf9\x86\xf4\x14(\x00x'
推荐阅读
- python - 使用多个元组进行 NumPy 切片
- python-3.x - python请求中的会话问题
- c# - 使用 GetPositionAsync Geolocator 时检测到异常
- reactjs - 无法删除 React NavLink 中的活动类
- html - 如何找出我的徽章在其工具提示上不接受 HTML 标记的原因?
- angular - Angular7 中的 CORS 策略已阻止源“http://localhost:4200”
- bash - Bash - 根据输出做出决策?
- python - Pytest =-导致失败的测试的最小子集
- websocket - 用于 websocket 应用程序的 nginx-ingress 粘性会话
- android - Room:替换 Dao 中的 SQLite 游标?