![]() |
1
3
PGP 除非有充分的理由不这么做。PGP是电子邮件中常用的一种开放的、普遍存在的混合加密标准。PGP有许多实现。我唯一知道的.NET是 BouncyCastle crypto project's C# library . PGP实际上提供了您所描述的功能的超集;例如,PGP还可以对消息进行数字签名。 关于私钥存储。典型的解决方案是在将私钥写入磁盘之前对其进行对称加密。只有私钥的真正所有者才知道密码秘密,而且他们不会告诉任何人。这样,即使攻击者获得了私钥文件,他们仍然必须泄露秘密或强制使用对称密码。我所知道的所有PGP实现都是这样做的。 请不要重新实现PGP,如果它做你想要的。PGP得到了广泛的支持。此外,像我这样的凡人(大概还有你自己)几乎没有机会把一切都做好。 |
![]() |
2
3
至于你的第一部分,这是绝对的方式去做。这叫做 hybrid cryptosystem . |
![]() |
3
2
|
![]() |
4
0
保存私钥的传统方法(在GPG/PGP/PKCS#1/PKCS#8中使用)是使用强密码短语对其进行密码保护并将其粘贴到文件中。大多数密钥库管理工具都有一种方法可以导出PKCS#1/PKCS#8格式的密钥—在一台机器上生成密钥,用密码导出密钥,然后在另一台机器上导入密钥;为了在机器之间传输密钥,密钥只在密钥库之外。 |
![]() |
MarcForn · 加密/解密字符串Kotlin 7 年前 |
![]() |
Neeraj Athalye · 加密期间发生Java内存不足错误 7 年前 |
![]() |
Kuno Heltborg · 尝试用其他语言解密时AES解密错误 7 年前 |
![]() |
Tim Tuckle · 用Java加密字符串 7 年前 |