/// <summary> /// 使用RSA进行非对称解密,使用默认私钥 /// </summary> /// <param name="inputBuffer">待解密的字节数组</param> /// <returns>解密后的字节数组</returns> public byte[] Decrypt(byte[] inputBuffer) { if (inputBuffer.Length <= DecryptCount) { return(RSACSP.Decrypt(inputBuffer, false)); } else { List <byte> list = new List <byte>(); MemoryStream ms = new MemoryStream(inputBuffer); byte[] buffer = new byte[EncryptCount]; while (ms.Read(buffer, 0, EncryptCount) > 0) { list.AddRange(RSACSP.Decrypt(buffer, false)); } return(list.ToArray()); } }
/// <summary> /// 使用RSA进行非对称解密 /// </summary> /// <param name="inputBuffer">待解密的字节数组</param> /// <param name="keyBlob">RSA私钥Blob字节数组</param> /// <returns>解密后的字节数组</returns> public byte[] Decrypt(byte[] inputBuffer, byte[] keyBlob) { using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { RSA.ImportCspBlob(keyBlob); if (inputBuffer.Length <= DecryptCount) { return(RSA.Decrypt(inputBuffer, false)); } else { List <byte> list = new List <byte>(); MemoryStream ms = new MemoryStream(inputBuffer); byte[] buffer = new byte[EncryptCount]; while (ms.Read(buffer, 0, EncryptCount) > 0) { list.AddRange(RSACSP.Decrypt(buffer, false)); } return(list.ToArray()); } } }