- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,我想知道你是否可以帮助我。
我需要创建一个带椭圆曲线的加密 JWE。
我正在使用
jre 1.6.0,nimbus-jose-jwt-8.20-jdk6.jar,bcprov-jdk15to18-166.jar。
我已经使用 EC 算法和椭圆曲线 P-512 创建了一个 keystore 和一个 key 对。如果我使用私钥对 JWT 进行签名,然后我尝试使用公钥对其进行验证,一切正常,但除了签名之外,我还需要加密以创建一个看不到有效负载的 JWE。
尝试使用公钥加密 JWE 时抛出以下异常
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/Objects
at com.nimbusds.jose.jwk.KeyUse.hashCode(KeyUse.java:121)
at java.util.HashMap.put(Unknown Source)
at com.nimbusds.jose.jwk.KeyUseAndOpsConsistency.<clinit>(KeyUseAndOpsConsistency.java:43)
at com.nimbusds.jose.jwk.JWK.<init>(JWK.java:197)
at com.nimbusds.jose.jwk.ECKey.<init>(ECKey.java:706)
at com.nimbusds.jose.jwk.ECKey$Builder.build(ECKey.java:571)
at com.nimbusds.jose.crypto.ECDHEncrypter.encrypt(ECDHEncrypter.java:217)
at com.nimbusds.jose.JWEObject.encrypt(JWEObject.java:370)
at pruebasJwt.inicioJwt.main(inicioJwt.java:373)
这是我用来加密的代码:
//encriptar token
ECPublicKey publicKey = (ECPublicKey) certificadoBean.getPublicKey();
Payload payload = new Payload(signedJWT2);
JWEObject jwe = new JWEObject(jweHeader, payload);
jwe.encrypt(new ECDHEncrypter(publicKey)); //**This is where the exception occurs**
String jweString = jwe.serialize();
String tokenJwt = signedJWT2.serialize();
System.err.println(tokenJwt);
我在 eclipe 类路径中定义了库。
虽然我的要求是用椭圆曲线加密的 JWE,但我已经创建了一个测试证书 RSA,这样我就能够毫无问题地生成一个带有所述证书的加密 JWE。
我还使用了他们放在 https://connect2id.com/products/nimbus-jose-jwt/examples/jws-with-ec-signature 上的一个非常简单的例子页面,它对我也不起作用。创建 key 对时,我遇到了同样的异常。
public class JweEC {
public static void main(String[] args) {
System.out.println("############ INICIO JWE FIRMADO CON CERTIFICADO CURVA ELIPTICA ##############");
System.out.println("soporta ES512" + JCASupport.isSupported(JWSAlgorithm.ES512));
//Proveedor de criptografica
Provider bc = BouncyCastleProviderSingleton.getInstance();
Security.addProvider(bc);
System.out.println("soporta ES512" + JCASupport.isSupported(JWSAlgorithm.ES512));
try {
ECKey ecJWK = new ECKeyGenerator(Curve.P_521)
.generate(); **This is where the exception occurs**
ECKey ecPublicJWK = ecJWK.toPublicJWK();
}catch (Exception e) {
// TODO: handle exception
}
}
}
NoClassDefFoundError 异常表示负责动态类加载的类加载器找不到您尝试使用的类的 .class 文件,但正如我之前所说,我的所有库都包含在类路径中。
会不会是我遗漏了一些利比里亚?我不知道,我迷失在这个问题上
最佳答案
问题是 nimbus-jose-jwt-8.20-jdk6.jar 不支持在 Java 6 上运行,尽管它的名称中出现了“jdk6”。
您看到的错误是因为 KeyUse 的 hashCode()
方法类使用 java.util.Objects
中的方法实用程序类,并且此类仅从 Java 7 开始可用。
我强烈建议至少从 Java 6 升级到 Java 8。这样做肯定会解决这个问题。但是,如果您坚持使用 Java 6,则必须 get in contact with Connect2Id并向他们寻求支持。
关于java - 使用 nimbus-jose 和 Java 6 的 ECDH + JWE 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63753287/
JWE 解密的新东西。我有一个执行 JWE 并根据服务器和客户端之间共享的 key 将其发送到客户端的服务器。 我正在使用 Jose4j 进行解密并收到此错误 java.lang.NullPointe
刚刚了解 JOSE,我知道 JWE 用于加密,而 JWS 用于签名。我似乎无法找到既加密又签名的有效负载的示例。 让我们假设我有一个有效载荷 hello world .做这样的事情是正确的吗? JWS
我有这个问题,我通过这种方式使用 EncryptingCredentials 在 .net 核心中创建了一个 JWE: var key = Encoding.ASCII.GetBytes(Config
我尝试了以下代码来创建 RSA-OAEP 和 A128GCM JWE 生成器和验证器。它与 node js 一起工作,即加密声明并生成 jwe 并解密它给我声明。但它不与其他客户合作,如 nimbus
我需要将 OAEPParameterSpec 作为 AlgorithmParameterSpec 添加到 JWE(Json Web Encryption)对象。我怎样才能做到这一点? 我正在使用客户端
有人成功使用过 JOSESwift 吗?就我而言,服务器解密失败,可能找不到匹配的私钥或加密错误。获取错误 500。 我的代码是,从服务器获取公钥。 keys?.keys?.forEach({ (ke
根据 RFC 7516应该可以加密有效负载/声明,称为 JWE。 有没有支持它的 python 库? 我检查了 PyJWT、python-jose 和 jwcrypto,但它们都只有使用 HS256
我有这个问题,我在 node.js 中使用 node-jose 创建了一个 JWE通过这种方式: const keystore = [ { kty: 'oct', kid: 'QL
我正在尝试在 Android (Java) 中实现 ECDH 加密/解密以及 JWE。 我找到了jose4j和 Nimbus JOSE图书馆的目标是做我需要的一切,但似乎比我想象的更具挑战性。 如果有
我正在使用 node-jose v0.11.0 ( https://www.npmjs.com/package/node-jose ) 进行 JWK 和 JWE 操作。我有一个 JWK 格式的 RSA
I need to encrypt using Python with the A256GCM algorithm, and getting back a JWT that I need to
我正在尝试创建 JWE 解密函数,但无法确定如何使用 Go Jose 接口(interface)来执行此操作。我已使用密码进行加密(我更喜欢此用例的密码): token := jwt.NewW
问题 来自浏览器的 CORS OPTIONS 请求正在进入我的 JWT 验证过滤器,并在每个请求上返回 401。我希望在进入 JWT 验证过滤器之前处理 CORS OPTIONS 请求。 背景 在我的
我是 JWT 的新手,我阅读了 RFC 7519 和很多关于 JWE 和 JWS 问题的网站,但我对这个主题有点困惑。 JWE 是经过编码的,而 JWS 是经过编码和签名的。 RFC 描述了“ 如果
我一直在阅读 JSON Web Encryption (JWE) 规范,其中包含 latest draft being 08 ,因为我们正在考虑在我们的身份验证服务器中支持 JSON Web toke
所有 JWE 都使用经过身份验证的关联数据加密 (AEAD) 算法进行加密。您是否有任何理由不想在附加身份验证数据 (AAD) 中包含 IV 和加密内容加密 key (CEK)?它会以某种方式使 JW
我需要正则表达式方面的帮助。 我有一些这样的文件: JWE-766.1.pdf JWE-766.2.pdf JWE-768.1.pdf JWE-770.1.pdf 我想要一个正则表达式模式来提取“JW
我有一个字符串格式的 token ,例如: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.K52jFwAQJH-DxMhtaq7sg5tMuot_mT5
我有一个问题,我想知道你是否可以帮助我。 我需要创建一个带椭圆曲线的加密 JWE。 我正在使用 jre 1.6.0,nimbus-jose-jwt-8.20-jdk6.jar,bcprov-jdk15
我正在实现一个客户端,用于通过加密方式与某些服务器进行通信。客户端向服务器发送带有 RSA 公钥的 get 请求。文档“如何与服务器通信”有带有java代码的示例。以下代码生成公钥: KeyPairG
我是一名优秀的程序员,十分优秀!