public static NCryptoParms EncryptCode(string decData, string spKey) { NCryptoParms parms = new NCryptoParms(); ICryptoTransform encryptor; CryptoStream cStream; MemoryStream mStream = new MemoryStream(); try { // Generate a new RSA public/private key pair // This key will be used to signature the DES IV and Key. RSACryptoServiceProvider jRsa = new RSACryptoServiceProvider(); byte[] signature = jRsa.SignData(sign, new MD5CryptoServiceProvider()); parms.jpbkey = Convert.ToBase64String(Encoding.ASCII.GetBytes(jRsa.ToXmlString(false))); parms.jprkey = Convert.ToBase64String(Encoding.ASCII.GetBytes(jRsa.ToXmlString(true))); parms.signature = Convert.ToBase64String(signature); jRsa.Clear(); RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString( Encoding.ASCII.GetString(Convert.FromBase64String(spKey))); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.GenerateIV(); des.GenerateKey(); parms.key = Convert.ToBase64String(rsa.Encrypt(des.Key, false)); parms.iv = Convert.ToBase64String(rsa.Encrypt(des.IV, false)); encryptor = des.CreateEncryptor(des.Key, des.IV); cStream = new CryptoStream(mStream, encryptor, CryptoStreamMode.Write); byte[] bytesIn = Encoding.ASCII.GetBytes(decData); cStream.Write(bytesIn, 0, bytesIn.Length); cStream.FlushFinalBlock(); cStream.Close(); byte[] bytesOut = mStream.ToArray(); mStream.Close(); parms.enc = Convert.ToBase64String(bytesOut); } catch { mStream.Close(); } return(parms); }
public static NCryptoParms EncryptCode(string decData, string spKey) { NCryptoParms parms = new NCryptoParms(); ICryptoTransform encryptor; CryptoStream cStream; MemoryStream mStream = new MemoryStream(); try { // Generate a new RSA public/private key pair // This key will be used to signature the DES IV and Key. RSACryptoServiceProvider jRsa = new RSACryptoServiceProvider(); byte[] signature = jRsa.SignData(sign, new MD5CryptoServiceProvider()); parms.jpbkey = Convert.ToBase64String(Encoding.ASCII.GetBytes(jRsa.ToXmlString(false))); parms.jprkey = Convert.ToBase64String(Encoding.ASCII.GetBytes(jRsa.ToXmlString(true))); parms.signature = Convert.ToBase64String(signature); jRsa.Clear(); RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString( Encoding.ASCII.GetString(Convert.FromBase64String(spKey))); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.GenerateIV(); des.GenerateKey(); parms.key = Convert.ToBase64String(rsa.Encrypt(des.Key, false)); parms.iv = Convert.ToBase64String(rsa.Encrypt(des.IV, false)); encryptor = des.CreateEncryptor(des.Key, des.IV); cStream = new CryptoStream(mStream, encryptor, CryptoStreamMode.Write); byte[] bytesIn = Encoding.ASCII.GetBytes(decData); cStream.Write(bytesIn, 0, bytesIn.Length); cStream.FlushFinalBlock(); cStream.Close(); byte[] bytesOut = mStream.ToArray(); mStream.Close(); parms.enc = Convert.ToBase64String(bytesOut); } catch { mStream.Close(); } return parms; }