internal static byte[] AESKeyWrapDecrypt(byte[] rgbKey, byte[] rgbEncryptedWrappedKeyData) { int num = (rgbEncryptedWrappedKeyData.Length >> 3) - 1; if (((rgbEncryptedWrappedKeyData.Length % 8) != 0) || (num <= 0)) { throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_KW_BadKeySize")); } byte[] dst = new byte[num << 3]; ICryptoTransform transform = new RijndaelManaged { Key = rgbKey, Mode = CipherMode.ECB, Padding = PaddingMode.None }.CreateDecryptor(); if (num == 1) { byte[] src = transform.TransformFinalBlock(rgbEncryptedWrappedKeyData, 0, rgbEncryptedWrappedKeyData.Length); for (int k = 0; k < 8; k++) { if (src[k] != s_rgbAES_KW_IV[k]) { throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_BadWrappedKeySize")); } } Buffer.BlockCopy(src, 8, dst, 0, 8); return(dst); } long num3 = 0L; Buffer.BlockCopy(rgbEncryptedWrappedKeyData, 8, dst, 0, dst.Length); byte[] buffer3 = new byte[8]; byte[] buffer4 = new byte[0x10]; Buffer.BlockCopy(rgbEncryptedWrappedKeyData, 0, buffer3, 0, 8); for (int i = 5; i >= 0; i--) { for (int m = num; m >= 1; m--) { num3 = m + (i * num); for (int n = 0; n < 8; n++) { byte num7 = (byte)((num3 >> (8 * (7 - n))) & 0xffL); buffer3[n] = (byte)(buffer3[n] ^ num7); } Buffer.BlockCopy(buffer3, 0, buffer4, 0, 8); Buffer.BlockCopy(dst, 8 * (m - 1), buffer4, 8, 8); byte[] buffer5 = transform.TransformFinalBlock(buffer4, 0, 0x10); Buffer.BlockCopy(buffer5, 8, dst, 8 * (m - 1), 8); Buffer.BlockCopy(buffer5, 0, buffer3, 0, 8); } } for (int j = 0; j < 8; j++) { if (buffer3[j] != s_rgbAES_KW_IV[j]) { throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_BadWrappedKeySize")); } } return(dst); }
/// <summary> /// AES解密算法 /// </summary> /// <param name="sourceString">加密字符串</param> /// <param name="aesKey">AES密钥</param> /// <returns>解密后的字符串</returns> public static string DecryptToAES(string sourceString, string aesKey) { if (string.IsNullOrEmpty(aesKey)) { throw new ArgumentNullException("请传入AES加(解)密密钥"); } if (string.IsNullOrEmpty(IV)) { throw new ArgumentException("AES加(解)密向量值未配置"); } try { aesKey = aesKey.PadRight(32, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(aesKey), IV = Encoding.Default.GetBytes(IV) }.CreateDecryptor(); byte[] inputBuffer = Convert.FromBase64String(sourceString); byte[] bytes = transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length); return(Encoding.UTF8.GetString(bytes)); } catch { return(""); } }
internal static byte[] AESKeyWrapEncrypt(byte[] rgbKey, byte[] rgbWrappedKeyData) { int num = rgbWrappedKeyData.Length >> 3; if (((rgbWrappedKeyData.Length % 8) != 0) || (num <= 0)) { throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_KW_BadKeySize")); } ICryptoTransform transform = new RijndaelManaged { Key = rgbKey, Mode = CipherMode.ECB, Padding = PaddingMode.None }.CreateEncryptor(); if (num == 1) { byte[] buffer = new byte[s_rgbAES_KW_IV.Length + rgbWrappedKeyData.Length]; Buffer.BlockCopy(s_rgbAES_KW_IV, 0, buffer, 0, s_rgbAES_KW_IV.Length); Buffer.BlockCopy(rgbWrappedKeyData, 0, buffer, s_rgbAES_KW_IV.Length, rgbWrappedKeyData.Length); return(transform.TransformFinalBlock(buffer, 0, buffer.Length)); } long num2 = 0L; byte[] dst = new byte[(num + 1) << 3]; Buffer.BlockCopy(rgbWrappedKeyData, 0, dst, 8, rgbWrappedKeyData.Length); byte[] buffer3 = new byte[8]; byte[] buffer4 = new byte[0x10]; Buffer.BlockCopy(s_rgbAES_KW_IV, 0, buffer3, 0, 8); for (int i = 0; i <= 5; i++) { for (int j = 1; j <= num; j++) { num2 = j + (i * num); Buffer.BlockCopy(buffer3, 0, buffer4, 0, 8); Buffer.BlockCopy(dst, 8 * j, buffer4, 8, 8); byte[] src = transform.TransformFinalBlock(buffer4, 0, 0x10); for (int k = 0; k < 8; k++) { byte num6 = (byte)((num2 >> (8 * (7 - k))) & 0xffL); buffer3[k] = (byte)(num6 ^ src[k]); } Buffer.BlockCopy(src, 8, dst, 8 * j, 8); } } Buffer.BlockCopy(buffer3, 0, dst, 0, 8); return(dst); }
public static string AES_Encrypt(string encryptString, string encryptKey) { encryptKey = smethod_0(encryptKey, 0x20, ""); encryptKey = encryptKey.PadRight(0x20, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 0x20)), IV = byte_0 }.CreateEncryptor(); byte[] bytes = Encoding.UTF8.GetBytes(encryptString); return(Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length))); }
/// <summary> /// 加密 /// </summary> /// <param name="plainText">待加密的文本</param> /// <param name="cipherkey">密钥</param> /// <returns>返回与此实例等效的加密文本</returns> public static string Encrypt(string plainText, string cipherkey) { cipherkey = TextUtility.CutLeft(cipherkey, 32); cipherkey = cipherkey.PadRight(32, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(cipherkey.Substring(0, 32)), IV = Keys }.CreateEncryptor(); byte[] bytes = Encoding.UTF8.GetBytes(plainText); return(Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length))); }
public string Encrypt(string encryptString, string encryptKey) { encryptKey = CommonHelper.EnsureMaximumLength(encryptKey, 0x20, string.Empty); encryptKey = encryptKey.PadRight(0x20, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 0x20)), IV = Keys }.CreateEncryptor(); byte[] bytes = Encoding.UTF8.GetBytes(encryptString); return(Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length))); }
public static string DecryptData(string toDecrypt) { byte[] array = Convert.FromBase64String(toDecrypt); ICryptoTransform cryptoTransform = new RijndaelManaged { Key = keyArray, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }.CreateDecryptor(); byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length); return(Encoding.UTF8.GetString(bytes)); }
public static string EncryptData(string toEncrypt) { byte[] bytes = Encoding.UTF8.GetBytes(toEncrypt); ICryptoTransform cryptoTransform = new RijndaelManaged { Key = keyArray, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }.CreateEncryptor(); byte[] array = cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length); return(Convert.ToBase64String(array, 0, array.Length)); }
public static string AESEncrypt(string toEncrypt, byte[] keyArray, byte[] ivArray) { byte[] bytes = Encoding.UTF8.GetBytes(toEncrypt); ICryptoTransform cryptoTransform = new RijndaelManaged { Key = keyArray, IV = ivArray, Mode = CipherMode.CBC, Padding = PaddingMode.Zeros }.CreateEncryptor(); byte[] array = cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length); return(Convert.ToBase64String(array, 0, array.Length)); }
public static string Encrypt(string encryptString) { if (string.IsNullOrEmpty(encryptString)) { return(string.Empty); } ICryptoTransform cryptoTransform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32)), IV = Keys }.CreateEncryptor(); byte[] bytes = Encoding.UTF8.GetBytes(encryptString); return(Convert.ToBase64String(cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length))); }
public static string AESDecrypt(string toDecrypt, byte[] keyArray, byte[] ivArray) { byte[] array = Convert.FromBase64String(toDecrypt); ICryptoTransform cryptoTransform = new RijndaelManaged { Key = keyArray, IV = ivArray, Mode = CipherMode.CBC, Padding = PaddingMode.Zeros }.CreateDecryptor(); byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length); string @string = Encoding.UTF8.GetString(bytes); return(@string.Replace("\0", "")); }
public string Decrypt(string decryptString, string decryptKey) { try { decryptKey = CommonHelper.EnsureMaximumLength(decryptKey, 0x20, string.Empty); decryptKey = decryptKey.PadRight(0x20, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(decryptKey), IV = Keys }.CreateDecryptor(); byte[] inputBuffer = Convert.FromBase64String(decryptString); byte[] bytes = transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length); return(Encoding.UTF8.GetString(bytes)); } catch { return(string.Empty); } }
public static string AES_Decrypt(string decryptString, string decryptKey) { try { decryptKey = smethod_0(decryptKey, 0x20, ""); decryptKey = decryptKey.PadRight(0x20, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(decryptKey), IV = byte_0 }.CreateDecryptor(); byte[] inputBuffer = Convert.FromBase64String(decryptString); byte[] bytes = transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length); return(Encoding.UTF8.GetString(bytes)); } catch { return(string.Empty); } }
/// <summary> /// 解密 /// </summary> /// <param name="cipherText">待解密的文本</param> /// <param name="cipherkey">密钥</param> /// <returns>返回与此实例等效的解密文本</returns> public static string Decrypt(string cipherText, string cipherkey) { try { cipherkey = TextUtility.CutLeft(cipherkey, 32); cipherkey = cipherkey.PadRight(32, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(cipherkey), IV = Keys }.CreateDecryptor(); byte[] inputBuffer = Convert.FromBase64String(cipherText); byte[] bytes = transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length); return(Encoding.UTF8.GetString(bytes)); } catch { return(""); } }
public static string Decrypt(string decryptString) { if (!string.IsNullOrEmpty(decryptString)) { try { ICryptoTransform cryptoTransform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32)), IV = Keys }.CreateDecryptor(); byte[] array = Convert.FromBase64String(decryptString); byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length); return(Encoding.UTF8.GetString(bytes)); } catch { return(""); } } return(string.Empty); }
/// <summary> /// AES加密算法 /// </summary> /// <param name="sourceString">原始字符串</param> /// <param name="aesKey">AES密钥</param> /// <returns></returns> public static string EncryptToAES(string sourceString, string aesKey) { if (string.IsNullOrEmpty(aesKey)) { throw new ArgumentNullException("请传入AES加(解)密密钥"); } if (string.IsNullOrEmpty(IV)) { throw new ArgumentException("AES加(解)密向量值未配置"); } aesKey = aesKey.PadRight(32, ' '); ICryptoTransform transform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(aesKey.Substring(0, 32)), IV = Encoding.Default.GetBytes(IV) }.CreateEncryptor(); byte[] bytes = Encoding.UTF8.GetBytes(sourceString); return(Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length))); }
public static string Decrypt(string cipherText, string cipherkey) { string result; try { cipherkey = TextUtility.CutLeft(cipherkey, 32); cipherkey = cipherkey.PadRight(32, ' '); ICryptoTransform cryptoTransform = new RijndaelManaged { Key = Encoding.UTF8.GetBytes(cipherkey), IV = AES.Keys }.CreateDecryptor(); byte[] array = Convert.FromBase64String(cipherText); byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length); result = Encoding.UTF8.GetString(bytes); } catch { result = ""; } return(result); }
public static string EncryptString(string rawData) { if (rawData == null) { return(null); } string result = string.Empty; byte[] bytes = Encoding.UTF8.GetBytes(rawData); int num = bytes.Length; if (num % 16 > 0) { num = (num + 16) / 16 * 16; } byte[] array = new byte[num]; Array.Copy(bytes, array, bytes.Length); int num2 = 20; byte[] array2 = new byte[] { 45, 55, 162, 205, 40, 214, 99, 105, 236, 91, 177, 233, 174, 28, 10, 94, 12, 192, 243, 93 }; byte[] array3 = new byte[16]; int num3 = 0; for (int i = 0; i < num2; i++) { if (i != 1 && i != 4 && i != 11 && i != 19) { array3[num3++] = array2[i]; } } ICryptoTransform cryptoTransform = new RijndaelManaged { Mode = CipherMode.ECB, Padding = PaddingMode.None, Key = array3 }.CreateEncryptor(); byte[] array4 = cryptoTransform.TransformFinalBlock(array, 0, array.Length); if (array4 != null && array4.Length > 0) { StringBuilder stringBuilder = new StringBuilder(); for (int j = 0; j < array4.Length; j++) { stringBuilder.AppendFormat("{0:x2}", (int)(array4[j] & 255)); } result = stringBuilder.ToString(); } return(result); }