首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python和Javascript (Node Js)中十六进制值为什么不同

python和Javascript (Node Js)中十六进制值为什么不同
EN

Stack Overflow用户
提问于 2019-07-29 20:06:49
回答 1查看 190关注 0票数 0

我一直在尝试用Node JS加密一些东西,然后用Python解密它。

当我将密钥(密钥,base64解码)提供给Fernet.js时,它形成一个十六进制字符串,该字符串等于:

代码语言:javascript
运行
复制
f790b0a226bc96a92de49b5e9c05e1ee

但是,当我在Python中给出相同的键并尝试转换为十六进制时,值是:

代码语言:javascript
运行
复制
730ff4c7af3d46923e8ed451ee813c87f790b0a226bc96a92de49b5e9c05e1ee

为什么会有不同?

NodeJS的代码示例:

代码语言:javascript
运行
复制
let s = 'cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4='
new Buffer(s)).toString('hex')

Python:

代码语言:javascript
运行
复制
be = base64.urlsafe_b64decode('cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4=')
be.hex()
EN

回答 1

Stack Overflow用户

发布于 2019-07-29 20:57:56

代码语言:javascript
运行
复制
import base64 , binascii

key = "cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4="
key = base64.urlsafe_b64decode(key)


# 32 bytes
f = binascii.hexlify(key)

# first 16 
SigningKey = key[:16]
# next 16 
EncKey = key[16:]


print (binascii.hexlify(SigningKey)) # 730ff4c7af3d46923e8ed451ee813c87
print (binascii.hexlify(EncKey)) # f790b0a226bc96a92de49b5e9c05e1ee
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57253548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档