我正在尝试为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 频道与我联系。