我能够生成公钥/私钥对,并在它们之间加密/解密。现在,我需要将PGP公钥的字符串版本发送给其他人,但我正在努力解决如何最好地做到这一点。
要获取公钥,我使用:
inputStream = PgpUtilities.GetDecoderStream(inputStream);
PgpPublicKeyRingBundle pgpPub = new PgpPublicKeyRingBundle(inputStream);
foreach (PgpPublicKeyRing kRing in pgpPub.GetKeyRings())
{
foreach (PgpPublicKey k in kRing.GetPublicKeys())
{
if (k.IsEncryptionKey)
{
return k;
}
}
}
我可以访问k,这是PgpPublicKey类的一个实例。
它提取的文件基本上是jibberish,它是公钥的字节表示。我需要您通常会在人与人之间复制和粘贴的字符串版本。
我怎么能在这里这么做?
谢谢
要用Base64对文本表示中的键进行编码,只需在调用PgpPublicKey之前将输出流包装在ArmoredOutputStream中。编码。
您的示例扩展为将密钥作为Base64编码字符串获取:
foreach (PgpPublicKeyRing kRing in pgpPub.GetKeyRings())
{
foreach (PgpPublicKey k in kRing.GetPublicKeys())
{
if (k.IsEncryptionKey)
{
MemoryStream memStream = new MemoryStream();
ArmoredOutputStream armoredStream = new ArmoredOutputStream(memStream);
k.Encode(armoredStream);
armoredStream.Close();
string keyString = Encoding.ASCII.GetString(memStream.ToArray());
//...
}
}
}
我想得到一个文件内容的公钥,这是一个文件内容看起来像什么的例子(用生成): 如果我是对的,这不是公钥,但是可以从这个字符串中获取公钥。 这个答案回答了我的问题https://stackoverflow.com/a/19387517/2735398 但答案似乎不起作用。我有个例外: 当看到答案的评论时,我不是唯一有问题的人... 如何修复异常?或者有没有其他方法可以从字符串中获取公钥?
如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?
问题内容: 因此,我正在使用Spongy Castle(Android)为RSA公钥生成PEM编码的字符串,并将其上传到服务器。这是我目前正在做的: 现在,您可能已经知道,我不确定如何构造或是否有更简单的方法来执行此操作。 当使用Bouncy Case时,我曾经这样做过 但是由于某种原因,海绵城堡中不存在PEMWriter类 问题答案: 好的,这可能不是最聪明的方法(或者也许是?),但是在检查了此
本文向大家介绍VBA 使用StrConv将单字节字符的字节数组转换为字符串,包括了VBA 使用StrConv将单字节字符的字节数组转换为字符串的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我初学java,我需要像这样: 我不知道该怎么做。 问题答案: 这里有两个正交的概念: 将文本转换为二进制文件,通常通过 压缩二进制数据,例如使用 因此,最终您将要: 创建一个将结果写入所需结果的位置(例如,文件或通过 包裹在一个 包裹在使用适当的字符集(例如UTF-8) 将文字写到 关闭编写器,这将刷新并关闭其他所有内容。 例如: 请注意,即使我们无法创建书写器,我也要关闭,但是如果
问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为