/// <summary> /// �����û��������룬����ʹ�õĽ����㷨����ɶ�ָ���ַ����Ľ��ܣ� /// <remarks>ָ���Ľ����㷨������ַ���ʹ�ü��ܵ��㷨һ�� /// �����㷨����������ͳ�ʼ��ƫ������Ҫ��һ�� /// DES��RC2:�������볤�Ⱥͳ�ʼ��ƫ�������� ������4���ַ�; /// Rijndael:�������볤�ȿ�����12,16���ַ�,��ʼ��ƫ����Ϊ8���ַ�; /// TripleDes:�������볤�ȿ���Ϊ8����12���ַ�,��ʼ��ƫ����Ϊ4���ַ�; /// </summary> /// <param name="plainText">������������</param> /// <param name="algorithm">ʹ�õļ����㷨</param> /// <param name="userInitialVector">����ʱʹ�õ���ʼƫ����</param> /// <param name="encryptionText">���ܺ���ַ���</param> /// <returns></returns> public static string Decrypt(string plainText, EncryptionAlgorithm algorithm, string userInitialVector, string encryptionText) { string result = string.Empty; SetKey(algorithm, plainText); SetInitialVector(algorithm, userInitialVector); EncryptTransform transform = new EncryptTransform(m_Key, m_initVec); byte[] bytesData = Convert.FromBase64String(encryptionText); byte[] bytes = null; try { bytes = transform.Decrypt(algorithm, bytesData); } catch (Exception exception) { throw exception; } if (bytes.Length > 0) { result = Encoding.Unicode.GetString(bytes); } m_Key = transform.Key; m_initVec = transform.InitVec; return result; }
/// <summary> /// �����û��������룬���μ���ʹ�õ��㷨����ɶ�ָ���ַ����ļ��� /// <example><![CDATA[string result = EncryptionHelper.Encrypt("1234", EncryptionAlgorithm.Rc2, "5678", text);]]></example> /// <remarks>�����㷨����������ͳ�ʼ��ƫ������Ҫ��һ�� /// DES��RC2:�������볤�Ⱥͳ�ʼ��ƫ�������� ������4���ַ�; /// Rijndael:�������볤�ȿ�����12,16���ַ�,��ʼ��ƫ����Ϊ8���ַ�; /// TripleDes:�������볤�ȿ���Ϊ8����12���ַ�,��ʼ��ƫ����Ϊ4���ַ�; /// ע��:����ṩ�����������ƫ�����������㷨�ı�,��ʹ���������,ʹ�����ڼ��ܺ�ͨ���ṩ��Key��InitVector���Ի�ü���ʱʹ�õ����������ƫ���� /// </remarks> /// </summary> /// <param name="plainText">ʹ�õļ�����������</param> /// <param name="algorithm">�����㷨ö�ٶ���</param> /// <param name="userInitialVector">ʹ�õļ�����ʼƫ����</param> /// <param name="encryptionText">��Ҫ���ܵ��ַ�</param> /// <returns></returns> public static string Encrypt(string plainText, EncryptionAlgorithm algorithm, string userInitialVector, string encryptionText) { string result = string.Empty; if (encryptionText.Length > 0) { SetKey(algorithm, plainText); SetInitialVector(algorithm, userInitialVector); EncryptTransform transform = new EncryptTransform(m_Key,m_initVec); byte[] bytes = Encoding.Unicode.GetBytes(encryptionText); byte[] inArray = transform.Encrypt(algorithm, bytes); if (inArray.Length > 0) { result = Convert.ToBase64String(inArray); } m_Key = transform.Key; m_initVec = transform.InitVec; } return result; }