使用公共 PEM 或 SSLeay 密钥响应本机 RSA 加密



我正在尝试为react-native找到一个有效的javascript库,该库将允许PEM格式的RSA公钥加密。

我不是加密专家,只是从 react-native 开始,所以如果我碰巧错过了一些明显的东西,请原谅我。

到目前为止,我已经尝试过本文推荐的 React-native-RSA和react-native-rsa-util.

我无法让 react-native-rsa-util 工作,并且 react-native-rsa 似乎不接受公共 PEM 密钥,而只接受 JWK 格式的密钥。

我不愿意使用 JWK

格式的唯一原因是我找不到一个 PHP 库来解密使用 JWK 密钥的传入消息。

我将非常感谢任何帮助/指示。

多谢

我写了一个支持 JWT 加密/解密的 PHP 库,以及许多其他有用的功能,包括压缩。

支持 RFC7518 和 JWK/JWKSet 中引用的所有算法。

您可以做的是使用我的库将您的 PEM 密钥转换为 JWK:

<?php
use JoseFactoryJWKFactory;
$jwk = JWKFactory::createFromKeyFile('/path/to/my/key.pem');
var_dump($jwk->getAll());

并使用您的 JWK 和我的库解密 JWT:

use JoseLoader;
$input = 'eyJhbGciOiJS...';
$loader = new Loader();
$jwe = $loader->loadAndDecryptUsingKey($input, $jwk, ['RSA-OAEP-256'], ['A256CBC-HS512']); // The list of accepted key and content encryption algorithms depends on your needs

变量$jwe现在是 JWE 对象。可以通过调用 $jwe->getPayload(); 来获取有效负载

如果需要,请随时通过专用的 Gitter 频道与我联系。

最新更新