Exemplo n.º 1
0
 /// <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());
     }
 }
Exemplo n.º 2
0
 /// <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());
         }
     }
 }