我正在尝试为react-native找到一个可用的javascript库,它允许以PEM格式进行RSA公钥加密。
我不是加密方面的专家,只是刚开始使用react-native所以请原谅我,如果我错过了一些明显的东西。
到目前为止,我已经尝试过了 react-native-rsa推荐的this post 和 react-native-rsa-util
我无法使react-native-rsa-util工作和反应 - native-rsa似乎不接受公共PEM密钥,只接受JWK格式的密钥。
我不愿意使用JWK格式的唯一原因是我找不到一个用JWK密钥解密传入消息的PHP库。
我非常感谢任何帮助/指示。
非常感谢
答案 0 :(得分:0)
我写了a PHP library,它支持JWT加密/解密,还有许多其他有用的功能,包括压缩。
支持RFC7518和JWK / JWKSet中引用的所有算法。
您可以做的是使用我的库将您的PEM密钥转换为JWK:
<?php
use Jose\Factory\JWKFactory;
$jwk = JWKFactory::createFromKeyFile('/path/to/my/key.pem');
var_dump($jwk->getAll());
用你的JWK和我的图书馆解密JWT:
use Jose\Loader;
$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 Object。
您可以通过调用$jwe->getPayload();
如果需要,请随时与the dedicated Gitter channel联系。