使用公共P​​EM或SSLeay密钥对本机RSA加密进行反应

时间:2017-04-03 19:59:53

标签: npm react-native rsa pem jwk

我正在尝试为react-native找到一个可用的javascript库,它允许以PEM格式进行RSA公钥加密。

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

到目前为止,我已经尝试过了 react-native-rsa推荐的this postreact-native-rsa-util

我无法使react-native-rsa-util工作和反应 - native-rsa似乎不接受公共PEM密钥,只接受JWK格式的密钥。

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

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

非常感谢

1 个答案:

答案 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联系。