首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取publicKey中的RSA_encrypt键对生成算法

如何获取publicKey中的RSA_encrypt键对生成算法
EN

Stack Overflow用户
提问于 2021-01-22 19:44:24
回答 1查看 2K关注 0票数 1

目前,我正在我的应用程序中进行加密,其中我使用RSA密钥对生成器来使用以下代码获取公钥和私钥-

代码语言:javascript
复制
import 'package:rsa_encrypt/rsa_encrypt.dart';
import 'package:pointycastle/api.dart' as crypto;

//Future to hold our KeyPair
Future<crypto.AsymmetricKeyPair> futureKeyPair;

//to store the KeyPair once we get data from our future
crypto.AsymmetricKeyPair keyPair;

Future<crypto.AsymmetricKeyPair<crypto.PublicKey, crypto.PrivateKey>> getKeyPair()
{
var helper = RsaKeyHelper();
return helper.computeRSAKeyPair(helper.getSecureRandom());
}

现在我想获得字符串格式的keyPair.publicKey,但是如果我打印keyPair.publicKey,它将显示“RSA publicKey的实例”。我怎样才能得到字符串格式的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 21:52:39

保存公钥时最好使用标准化格式。对于RSA公钥,您可以将它们分层存储,就像Matroesjka娃娃一样。

  1. 以PKCS#1 RSA标准中指定的ASN.1 / DER格式编码公钥;
  2. 用一种称为SubjectPublicKeyInfo的格式对该公钥进行编码,这是X.509规范的一部分--它表明这确实是一个RSA密钥;
  3. 应用所谓的PEM "ASCII装甲“,它由表示通用SubjectPublicKeyFormat的页眉和页脚行(仅为PUBLIC KEY)组成,其中包含从第2步开始的公钥多行64编码。

听起来要做很多工作,但是如果您看起来像这里,您会发现一些名为encodePublicKeyToPemparsePublicKeyFromPem的方法,它们为您执行这三个步骤(实际上,它在同一个函数中同时执行1和2,这有点遗憾,但并不那么重要)。

这些密钥是相当可移植的,并且也可用于例如OpenSSL或PGP。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65851773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档