Exemple #1
0
 public static ICryptoTransform CreateEncryptor(string key, CryptionType type)
 {
     ICryptoTransform transform;
     SHA512 sha512 = new SHA512CryptoServiceProvider();
     var bytes = sha512.ComputeHash(Sha1(key).ToAsciiBytes());
     switch (type)
     {
         case CryptionType.Aes:
             var aes = Rijndael.Create();
             aes.Mode = CipherMode.CBC;
             transform = aes.CreateEncryptor(bytes.Skip(17).Take(32).ToArray(), bytes.Skip(17).Take(16).ToArray());
             aes.Clear();
             break;
         case CryptionType.Des:
             var des = new DESCryptoServiceProvider { Mode = CipherMode.CBC };
             transform = des.CreateEncryptor(bytes.Skip(17).Take(8).ToArray(), bytes.Skip(17).Take(16).ToArray());
             des.Clear();
             break;
         default:
             var tripleDes = new TripleDESCryptoServiceProvider { Mode = CipherMode.CBC };
             transform = tripleDes.CreateEncryptor(bytes.Skip(17).Take(24).ToArray(), bytes.Skip(17).Take(16).ToArray());
             tripleDes.Clear();
             break;
     }
     return transform;
 }
Exemple #2
0
 /// <summary>
 /// 加密成base64字符串
 /// </summary>
 /// <param name="plainStr"></param>
 /// <param name="key"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static string Encrypt2Base64(string plainStr, string key, CryptionType type)
 {
     var byteArray = plainStr.ToUtf8Bytes();
     var mStream = new MemoryStream();
     var cStream = new CryptoStream(mStream, BaseCryption.CreateEncryptor(key, type), CryptoStreamMode.Write);
     cStream.Write(byteArray, 0, byteArray.Length);
     cStream.FlushFinalBlock();
     var encrypt = mStream.ToArray().Bytes2Base64();
     cStream.Close();
     return encrypt;
 }
Exemple #3
0
 /// <summary>
 /// 从nase64字符串解密
 /// </summary>
 /// <param name="base64"></param>
 /// <param name="key"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static string DecryptFromBase64(string base64, string key, CryptionType type)
 {
     var byteArray = base64.Base64ToBytes();
     var mStream = new MemoryStream();
     var cStream = new CryptoStream(mStream, BaseCryption.CreateDecryptor(key, type), CryptoStreamMode.Write);
     cStream.Write(byteArray, 0, byteArray.Length);
     cStream.FlushFinalBlock();
     var decrypt = mStream.ToArray().FromUtf8Bytes();
     cStream.Close();
     return decrypt;
 }
Exemple #4
0
 /// <summary>
 /// 从16进制字符串解密
 /// </summary>
 /// <param name="encryptStr"></param>
 /// <param name="key"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static string Decrypt(string encryptStr, string key, CryptionType type)
 {
     var byteArray = encryptStr.Hex2Bytes();
     var mStream = new MemoryStream();
     var cStream = new CryptoStream(mStream, BaseCryption.CreateDecryptor(key, type), CryptoStreamMode.Write);
     cStream.Write(byteArray, 0, byteArray.Length);
     cStream.FlushFinalBlock();
     var decrypt = Encoding.UTF8.GetString(mStream.ToArray());
     cStream.Close();
     return decrypt;
 }