代码之家  ›  专栏  ›  技术社区  ›  JsCoder

用ECDSA对C语言中的数据进行加密#

  •  1
  • JsCoder  · 技术社区  · 2 年前

    我正试图想出一个可互操作的加密算法(通过 interopable 我指的是在中签名/加密数据的能力 c# 使用由生成的密钥 JS 反之亦然)。

    我拍了 ECDSA 作为一个基地,它看起来很现代,而且有很好的记录,我也看到了样品 keyUsage 值,意味着加密支持(我认为它在 JS ).

    我能够在中签名/验证签名 c 使用 JS 生成的密钥,但是 c ECSDA class 似乎不支持加密。这是代表微软的在制品还是我们应该坚持 RSA 用于加密(如下 answer 建议)?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Andrew Parks    2 年前

    ECDSA是一种椭圆曲线的数字签名算法。

    您正在寻找的是公钥身份验证加密,它使用ECDH密钥交换来建立一次性对称加密密钥。然后,该对称密钥被用于使用诸如AES256或XSalsa20-Poly1305之类的东西来执行对称加密。

    使用EC加密直接加密数据的方式不可能与在RSA中技术上相同(尽管出于性能原因,RSA加密通常首先为接收方加密一次性对称加密密钥,然后使用对称加密)。

    我认为NaCl的“盒子”可用于C#和Javascript,并且是可互操作的。另请参阅 TweetNaCl (JS) TweetNaCl (C#) .

    推荐文章