# :open_book:文档
## 【RSA_PEM.cs】
此文件不依赖任何文件,可以直接copy这个文件到你项目中用;通过`FromPEM`、`ToPEM` 和`FromXML`、`ToXML`这两对方法,可以实现PEM`PKCS#1`、`PKCS#8`相互转换,PEM、XML的相互转换。
项目里面需要引入程序集`System.Numerics`用来支持`BigInteger`,vs默认创建的项目是不会自动引入此程序集的,要手动引入。
注:`openssl rsa -in 私钥文件 -pubout`导出的是PKCS#8格式公钥(用的比较多),`openssl rsa -pubin -in PKCS#8公钥文件 -RSAPublicKey_out`导出的是PKCS#1格式公钥(用的比较少)。
### 静态方法
**static RSA_PEM FromPEM(string pem)**:用PEM格式密钥对创建RSA,支持PKCS#1、PKCS#8格式的PEM,出错将会抛出异常。pem格式如:`-----BEGIN XXX KEY-----....-----END XXX KEY-----`。
**static RSA_PEM FromXML(string xml)**:将XML格式密钥转成PEM,支持公钥xml、私钥xml,出错将会抛出异常。xml格式如:`/nSZaBqEGehINeMa805aAqjNOhlHNYGZmF/C4evMvsc=
3/GsDJA/AnKq/lqbpCr1OB5h2wIKsLlPGafPljFzN9s=
+N3qwya7gWN568BuciUwkSlgWVlORusk267Nkkiu3jc=
05o0BiIaDFYtHYNUh5/ROgDSkWqPXjy8Nlmh0S6QdNM=