【问题标题】:React native RSA encryption with a public PEM or SSLeay key使用公共 PEM 或 SSLeay 密钥响应本机 RSA 加密
【发布时间】:2017-08-28 19:53:33
【问题描述】:

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

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

到目前为止,我已经尝试过 react-native-rsathis post 推荐 和 react-native-rsa-util.

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

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

非常感谢任何帮助/指点。

非常感谢

【问题讨论】:

    标签: npm react-native rsa pem jwk


    【解决方案1】:

    我写了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-&gt;getPayload();获取payload

    如有需要,请随时通过the dedicated Gitter channel 与我联系。

    【讨论】:

    • 非常感谢您的回答以及您对这个很棒的库的工作!它完全按预期工作。
    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2015-05-27
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2018-11-25
    相关资源
    最近更新 更多