问题标签 [nacl-cryptography]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 libsodium 中使用哪种密钥对类型?各有什么不同的能力?
我想使用合适的 libsodium 密钥对作为用户身份,但我还不知道我将提供哪些加密功能。
libsodium 中似乎有 3 种类型的密钥对生成:
此外,似乎有 3 种类型的键:
我不知道哪种密钥类型对应于哪个密钥对生成函数,或者它们是否完全对应。
所以,问题:
- 每个密钥对都设计为与某些功能一起使用(例如,
crypto_box_keypair()
withcrypto_box_easy()
)。密钥对类型和加密功能/能力之间的兼容性矩阵是什么? - 如果有一种可以与所有功能一起使用的键类型,它是哪一种?
paramiko - import paramiko throws '_sodium' has no function error
在 Python3 上导入 paramiko 会引发以下异常。
有谁知道为什么?
python - PyNaCl - 打印 PrivateKey 原始十六进制值
为了简单起见,我目前正在尝试使用椭圆曲线并使用 python。
我有一个正确实例化的此类( NaCl/PrivateKey)的实例。
但是查看它的公共类变量,我似乎只能查询大小。
是我的误解吗,是否有一个公共变量我可以查询来获取底层的私钥数据(同样我只是在玩和学习,而不是为了生产)。
我已经能够打印 privateKey 实例,它会打印一个像这样的直接字节数组:\xa6_\xe5\xa3\xc3\xdd\x96\x04C\x03%\x0f\xe7)y\x92\n\xf7#\xee\xcdo\xff\xaf%\xedZ\xd4\x0e\xecr\xb4
然后,我可以b
在 Python repl 中为 a添加前缀,并.toHex
调用 get:
是否有任何 Python 忍者可以指导我直接从实例进行更直接的访问?
我能做的最好的是print(binascii.hexlify(privateKey.__bytes__()))
- 但这似乎不是一种合适的方式,__bytes__
直接访问
python - 如何让 AWS Lambda 上的 NaCL 正常工作?
我在 AWS lambda 上成功使用了 Pychromeless 存储库。
现在我需要使用 NaCL 依赖项来解密字符串,但我得到了
Unable to import module 'lambda_function': /var/task/lib/nacl/_sodium.abi3.so
有一个补充
invalid ELF header
在 AWS Lambda 上运行该函数时。
我知道这是与 AWS Lambda 环境相关的特定问题,因为我可以在我的 Mac 上的 docker 内运行该函数。
这是我的 requirements.txt 文件
这是码头文件
和makefile:
没有解密部分,代码工作得很好。所以这个问题与 PyNaCl 100% 相关。
解决这个问题有什么帮助吗?
javascript - 是否可以使用 Tweetnacl 库使用 base58 密钥签署消息?
我使用Tweetnacl.js生成了一个密钥对:
现在我有一个 base58 密钥对(base58 中的公钥和密钥),我想用这样的密钥对消息进行签名:
base58
这是来自这个图书馆的。
但是我收到此错误:
实际上,该nacl.sign
函数需要一个 64 位的密钥,而我的 base58 版本不是这种情况。
有没有办法在保留 base58 的同时修复它,或者我应该使用由 生成的原始 Ed25519 格式nacl.randomBytes(32)
,即未转换的格式?
javascript - 如何使用 JS-NaCl 加密 JSON 对象并使用 php Libsodium 解密
我设法找到了一个用于前端加密的 Libsodium js 库(JS-NaCl),并且还为 Libsodium 加密/解密设置了我的 PHP 后端。当我像下面这样加密 JSON 对象时
当我使用它触发登录方法时,它会使用 encrypt 方法加密 JSON 对象,因此我发送如下内容:
在 php 后端代码中,我正在这样做:
相同的键,相同的随机数,但它不会回显任何内容。这个怎么解密??
javascript - TweetNaCl TypeError:意外类型,使用 Uint8Array
尝试使用 TweetNaCl 的符号功能时遇到问题。它总是抛出错误的意外类型,使用 Uint8Array。
将返回一个包含 secretkey 和 publickey 的对象 .. 但是在尝试签名时
错误很严重
任何人都知道如何克服这个?谢谢你 :)
python - 在近协议中使用 ed25519 进行签名和验证
我正在尝试使用signMessage在 javascript 中对消息进行签名,并使用 python 对其进行验证以实现jwt authentication。
这是使用near-api-js在 javascript 中签名消息的代码
Output gives:
public key fe20d3e271876c8329c74dcdbe95e32586ee5cf67def1c0cc9e0b8d0e4285813
signature 61d864f40667075da6f920f811def3b83330a6cce49b7bd24eb4711f29abcf55d6d2eaf6f67bf74f20a2f79598f7fd42b4f70db41446d73d596b58d31825710c
这是我的后端python代码:
但我无法让它工作,它给出了一个无效的签名。
python-3.x - 用于 nuki smartlock 2.0 的 pynacl crypto_core_hsalsa20
我需要 crypto_core_hsalsa20 函数来为我的NUKI 增加密钥。
双方使用函数 dh1 a 计算 DH Key k。密钥 0DE40B998E0E330376F2D2FC4892A6931E25055FD09F054F99E93FECD9BA611E 8. 双方使用函数 kdf1 a 从 k 导出一个长期共享密钥 s。共享密钥 217FCB0F18CAF284E9BDEA0B94B83B8D10867ED706BFDEDBD2381F4CB3B8F730
4.2 密钥推导函数kdf1
用于从 dh1 计算的共享密钥中导出一个长期密钥
我已经用 nacl.publik.Box (=dh1) 函数计算了 DH Key k。
有人可以告诉我如何在 pynacl 中使用 kdf1 函数吗?谢谢!