我正在尝试用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"}将被签名并发送,但我不明白我将如何使用apv和epk,因为这些标题参数在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库实现这一点的任何想法都会非常有用.谢谢
在login.html我有:
<form class="login" method="POST" action="{% url 'account_login' %}">
{% csrf_token %}
{{form.as_p}}
Run Code Online (Sandbox Code Playgroud)
我可以在世界上如何向字段添加自定义css类和其他属性?互联网上似乎没有人遇到过这个问题.我只需要添加像课一样简单的东西.如果有人回答此问题,请提前致谢 我真的希望这会对别人有所帮助.