/// <summary> /// 加密 用的是PEM格式的密钥 /// </summary> /// <param name="plaintext">要加密的数据</param> /// <param name="publicPEMKey">PEM格式的公钥</param> /// <returns></returns> public static string Encrypt_PEMKey(string plaintext, string publicPEMKey) { using (RSACryptoServiceProvider RSA = RSA_PEM.FromPEM(publicPEMKey)) { return(Encrypt(plaintext, RSA)); } }
/// <summary> /// 导出PEM PKCS#8格式密钥对,返回数组第一个是私钥,第二个是公钥. /// </summary> /// <param name="size">密钥长度,默认1024,可以为2048</param> /// <returns></returns> public static string[] CreateKey_PEM_PKCS8(int size = 1024) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(size); string privateKey = RSA_PEM.ToPEM(rsa, false, true); string publicKey = RSA_PEM.ToPEM(rsa, true, true); return(new string[] { privateKey, publicKey }); }
/// <summary> /// 解密 用的是PEM格式的密钥 /// </summary> /// <param name="ciphertext">密文</param> /// <param name="privatePEMKey">密钥</param> /// <returns></returns> public static string Decrypt_PEMKey(string ciphertext, string privatePEMKey) { //using (var RSA = new RSACryptoServiceProvider()) using (var RSA = RSA_PEM.FromPEM(privatePEMKey)) { return(Decrypt(ciphertext, RSA)); } }