You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中使用rsa crate解析PEM公钥报错的问题求助

解决RSA crate解析PEM公钥时的PostEncapsulationBoundary错误

问题原因

你遇到的Pem(PostEncapsulationBoundary)错误,是因为PEM公钥字符串中每行Base64内容前都带有多余的缩进空格,违反了PEM格式规范,导致解析器无法正确识别封装边界后的有效内容。

修复方案

移除PEM字符串中每行Base64部分的前导空格,确保内容顶格。修正后的代码如下:

use rsa::{RsaPublicKey};
use rsa::pkcs8::DecodePublicKey;

fn main() {
    let pem = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtsQsUV8QpqrygsY+2+JC\nQ6Fw8/omM71IM2N/R8pPbzbgOl0p78MZGsgPOQ2HSznjD0FPzsH8oO2B5Uftws04\nLHb2HJAYlz25+lN5cqfHAfa3fgmC38FfwBkn7l582UtPWZ/wcBOnyCgb3yLcvJrX\nyrt8QxHJgvWO23ITrUVYszImbXQ67YGS0YhMrbixRzmo2tpm3JcIBtnHrEUMsT0N\nfFdfsZhTT8YbxBvA8FdODgEwx7u/vf3J9qbi4+Kv8cvqyJuleIRSjVXPsIMnoejI\nn04APPKIjpMyQdnWlby7rNyQtE4+CV+jcFjqJbE/Xilcvqxt6DirjFCvYeKYl1uH\nLwIDAQAB\n-----END PUBLIC KEY-----";

    let _public_key = RsaPublicKey::from_public_key_pem(pem).unwrap();
}

额外注意事项

  • 从外部复制PEM内容时,要避免带入多余的缩进、换行或其他非标准字符
  • PEM格式要求头部/尾部标记单独占一行,中间Base64内容每行长度建议不超过64字符(核心是无多余前导空格)

内容的提问来源于stack exchange,提问作者Remi_la

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:54:24