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
相关产品推荐
相关产品推荐

