问题标签 [ecdh]

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.

0 投票
2 回答
272 浏览

java - 为什么带有 ECDH 加密算法的 JsonWebSignature 每次都给出不同的签名?

我想向 google FCM 发送请求以向浏览器发送推送请求以显示通知。

主要目标是使用带有 SHA256 的 ECDH 算法使用私钥对 JWT 有效负载进行签名,以获取 JWT 令牌。

我尝试使用 ECDH 算法对令牌进行签名,但每次我获得相同有效负载的不同签名时。

这是我的代码的快照

提前致谢

.

.

第一次尝试我得到了:

eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiJodHRwczovL2ZjbS5nb29nbGVhcGlzLmNvbSIsImV4cCI6MTU2MDM4ODMxOCwic3ViIjoibWFpbHRvOmFkbWluQGV4YW1wbGUuY29tIn0.MpGc0pKvXtDb94Ruq5lkQjqCqxFMkVAwzVervnH90RLArvGHUAZ_kO4VcecLhGfIXTCitBKb5M-EKsYR35IT0A

第二次我得到:

eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiJodHRwczovL2ZjbS5nb29nbGVhcGlzLmNvbSIsImV4cCI6MTU2MDM4ODMxOCwic3ViIjoibWFpbHRvOmFkbWluQGV4YW1wbGUuY29tIn0.qEW0ci1BnXXUUjkfsQkdReznAyIDEPtygxV3B58Sl8v_gTlh8O4HHGzRtxsqdvL5UIJV06e_UJHYPOUDK_MF9A

0 投票
0 回答
135 浏览

c# - 将此 Nodejs 函数转换为 C# 函数

我在 NodeJS 中有这个函数,我需要一些帮助才能转换为 C#,我的问题是从 randomBytes 获取“buf”

NodeJS 功能:

到目前为止的 C# 代码:

0 投票
3 回答
1265 浏览

android - 如何在 Android 9.0 pie 中获取 ECDH 密钥对?

我想获得 ECDH 密钥对(公钥和私钥)。此方法在 Android 9.0 pie 中不起作用,因为从该版本中删除了安全提供程序 "BC" 、 "SC"。我尝试了以下方法

Following is the key which i got when using "BC" provider with the bove code, EC Private Key S: 30e3def89f6aca7ab4e1e0e0367bf936955339db03a0c32c63a08293066f9423 EC Public Key X: 1675a6b1c8097f651be6f6a555ab9e5da83f03d3082041ae29111609b98594be Y: ed23f9263c6a1e8892d03a0c33ed9d8bfc5886dfe67fb7947457e3ff43baffca

方法二:Security.insertProviderAt(BouncyCastleProvider(), 1);

当我在 gradle 中添加 Bouncy castle 并尝试像上面一样启动时,输出如下 privateKey = {OpenSSLECPrivateKey@7518} "OpenSSLECPrivateKey{params={ECDSA-Parameters: (256 bit)\n}}" publicKey = {OpenSSLECPublicKey@7519} “公钥:(256 位)\n00000000 04 5c 2c 76 23 09 41 c4 16 e2 99 ea e0 fa ed 16 |.\,v#.A.........|\n00000010 52 ca 91 d2 0c fe 7f c4 94 76 54 9a 3c 49 ab a5 |R........vT.

我需要它以可读格式像上面一样简单,我是否需要进行任何转换才能获得字母数字键

0 投票
1 回答
728 浏览

node.js - Node.js 加密使用 tron 公共地址创建 ecdh

我的目标是钱包地址加密,使用TronWeb.createAccount(),我获取 base58 中钱包的公共地址和十六进制的私钥。

我正在使用以下代码获取密钥。

当我在 bob.createECDH() 中设置私钥后使用 getPublicKey() 方法时,代码可以正常工作,但实际上当我在 bob 一侧时,我不会为 alice 使用 setPrivateKey() 方法。所以我将不得不传递 base58 公共地址,而不是两边的 bob.getPublicKey() 或 alice.getPublicKey()。

以下是加密和解密的完整代码。

当我使用 setPrivateKey() 然后使用 getPublicKey() 时,输出是预期的

当我使用 bs58 或它说的任何其他包将公钥转换为十六进制时

有没有办法转换这个公共地址并在这种情况下使用它?

0 投票
1 回答
185 浏览

android - 如何从密钥库中提取十六进制格式的私钥

此代码返回编码的私钥“null”。提取密钥的方法是什么。

0 投票
1 回答
1289 浏览

java - ECDH 上的公钥长度应该是多少?

我正在开发一个在 Android 应用程序上实现 ECDH 的项目,我的问题与 Java 实现有关,它生成的公钥比我预期的要长。

据我所知或从这里了解到,如果它是 256 位曲线(secp256k1),则密钥将是:

我希望输出(ourPk 的 len)为 65,但实际输出为 91。

0 投票
0 回答
98 浏览

c# - C# 充气城堡 DHKdfParameters extraInfo 不影响结果

我使用充气城堡为 ECDH 和 AES128-GCM 使用密钥推导函数。

所以这是我的代码。

我在这里看到了那个代码。

但 extraInfo 不影响结果。

因为无论 extraInfo 是否有值,结果总是相同的。

new DHKdfParameters(...) 中的 secretZ 值和 keySize 会影响结果。

如何让 extraInfo 影响结果?

0 投票
1 回答
1197 浏览

java - 使用现有的外部公钥从 ECDH 导出共享密钥

我将一个方法从 nodeSJ 转换为 Java,但我无法让它工作。我坚持试图计算派生的共享秘密。

希望有人能抓住我做错了将nodeJS移植到Java的事情。

节点代码:

进行中的 Java 代码:

我注意到的一件事是从 nodejs 与 java 生成的公钥/私钥大小不同?节点中有 65 个字节,java 中有 91 个字节。不知道为什么会这样。

这里有什么突出的错误?

谢谢

编辑:

所以基本上,我只需要知道如何在 Java 中做到这一点

0 投票
1 回答
385 浏览

vb.net - NIST p256 点解压:寻找基点的 Y 坐标

我正在尝试实现 NIST P256 点压缩和解压缩,当我解决 y = sqrt(x^3 + ax + b) 时,我一直得到错误的 y 坐标。

我认为减压的一个很好的测试是采用 NIST 定义的基点 G(https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf,第 D.1.2.3 节) 并使用它的 x 坐标来验证我计算的 y 坐标是否正确。

这就是我正在做的事情:

我得到了可能的分数

  • 110978579505207128328462658488647051134659543018045598806500827547749176924776

  • 4813509705149120434234788460760522395426600397244715389032803761117920929175

两者都不是预期的基 y 点

  • 36134250956749795798585127919587881956611106672985015071877198253568414405109

有什么我想念的吗?

0 投票
1 回答
183 浏览

javascript - Javascript 将 ECDH 密钥转换为 ECDSA 密钥

我以这种方式生成 ECDH 密钥

这样我就有了密码和原始(x,y 坐标)公钥。
我将使用密钥将其用于 ECDSA

我怎样才能做到这一点?