小编Nei*_*ury的帖子

在Java中实现Diffie-Hellman密钥交换

我正在尝试用Java实现Diffie-Hellman密钥交换,但我很难理解规范:

根据JWA(RFC 7518)在直接密钥协商模式下使用曲线P-256,dT和QC完成Diffie-Hellman密钥交换过程作为本地机制,以生成一对CEK(每个方向一个),这些CEK由Transaction标识ID.此版本规范支持的参数值为:

  • "alg":ECDH-ES
  • "apv":SDK参考编号
  • "epk":QC,采用JSON Web Key(JWK)格式
  • {"kty":"EC""crv":"P-256"}
  • 所有其他参数:不存在
  • CEK:"kty":oct - 256位

创建以下数据的JSON对象作为要签名的JWS有效内容:

{"MyPublicKey":"QT","SDKPublicKey":"QC"}

使用JWS Compact Serialization根据JWS(RFC 7515)生成完整JSON对象的数字签名.此版本规范支持的参数值为:

  • "alg":PS256或ES256
  • "x5c":X.5C v3:Cert(MyPb)以及可选的链接证书

根据我的理解,ECDH将生成一个密钥.在共享我的短暂公钥(QT)之后,SDK生成相同的密钥,因此我们以后可以交换使用相同密钥加密的JWE消息.

JSON {"MyPublicKey":"QT","SDKPublicKey":"QC"}将被签名并发送,但我不明白我将如何使用apvepk,因为这些标题参数在JWE中使用而不是在第一个JWS将被共享.

在相同的规范中,他们谈论这些JWE消息,但他们没有这些apv和epk参数.

根据JWE(RFC 7516)使用SDK使用的相同"enc"算法加密JSON对象,获得的CEK由"kid"和JWE Compact Serialization识别.此版本规范支持的参数值为:

  • "alg":dir
  • "enc":A128CBC-HS256或A128GCM
  • "kid":交易ID
  • 所有其他参数:不存在

我还阅读了RFC 7518中的示例,其中我可以看到标题params apv和epk正在使用但是我不确定哪个标题参数,JWE或JWS?

关于如何使用nimbus-jose-jwt或任何其他java库实现这一点的任何想法都会非常有用.谢谢

java cryptography jwe ecdh

17
推荐指数
1
解决办法
2058
查看次数

Django Allauth - 如何向字段添加自定义css类?

在login.html我有:

 <form class="login" method="POST" action="{% url 'account_login' %}">
  {% csrf_token %}

  {{form.as_p}}
Run Code Online (Sandbox Code Playgroud)

我可以在世界上如何向字段添加自定义css类和其他属性?互联网上似乎没有人遇到过这个问题.我只需要添加像课一样简单的东西.如果有人回答此问题,请提前致谢 我真的希望这会对别人有所帮助.

html css django django-allauth

4
推荐指数
2
解决办法
2322
查看次数

标签 统计

cryptography ×1

css ×1

django ×1

django-allauth ×1

ecdh ×1

html ×1

java ×1

jwe ×1