3des java ivparame_(C#)常用数据加密和解密方法汇总

m_RC2Provider = new

RC2CryptoServiceProvider();

try

{

byte[] m_btDecryptString =

Convert.FromBase64String(DecryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_cstream = new CryptoStream(m_stream,

m_RC2Provider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey),

m_btIV), CryptoStreamMode.Write);

m_cstream.Write(m_btDecryptString, 0,

m_btDecryptString.Length);

m_cstream.FlushFinalBlock();

m_strDecrypt =

Encoding.Default.GetString(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_cstream.Close(); m_cstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_RC2Provider.Clear(); }

return m_strDecrypt;

}

///

/// 3DES 加密(基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高)

///

/// 待加密密文

/// 密钥一

/// 密钥二

/// 密钥三

/// returns

public static string DES3Encrypt(string EncryptString, string

EncryptKey1, string EncryptKey2, string EncryptKey3)

{

string m_strEncrypt = "";

try

{

m_strEncrypt = DESEncrypt(EncryptString, EncryptKey3);

m_strEncrypt = DESEncrypt(m_strEncrypt, EncryptKey2);

m_strEncrypt = DESEncrypt(m_strEncrypt, EncryptKey1);

}

catch (Exception ex) { throw ex; }

return m_strEncrypt;

}

///

/// 3DES 解密(基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高)

///

/// 待解密密文

/// 密钥一

/// 密钥二

/// 密钥三

/// returns

public static string DES3Decrypt(string DecryptString, string

DecryptKey1, string DecryptKey2, string DecryptKey3)

{

string m_strDecrypt = "";

try

{

m_strDecrypt = DESDecrypt(DecryptString, DecryptKey1);

m_strDecrypt = DESDecrypt(m_strDecrypt, DecryptKey2);

m_strDecrypt = DESDecrypt(m_strDecrypt, DecryptKey3);

}

catch (Exception ex) { throw ex; }

return m_strDecrypt;

}

///

/// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael

算法)

///

/// 待加密密文

/// 加密密钥

///

public static string AESEncrypt(string EncryptString, string

EncryptKey)

{

if (string.IsNullOrEmpty(EncryptString)) { throw (new

Exception("密文不得为空")); }

if (string.IsNullOrEmpty(EncryptKey)) { throw (new

Exception("密钥不得为空")); }

string m_strEncrypt = "";

byte[] m_btIV =

Convert.FromBase64String("Rkb4jvUy/ye7Cd7k89QQgQ==");

Rijndael m_AESProvider = Rijndael.Create();

try

{

byte[] m_btEncryptString =

Encoding.Default.GetBytes(EncryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_csstream = new CryptoStream(m_stream,

m_AESProvider.CreateEncryptor(Encoding.Default.GetBytes(EncryptKey),

m_btIV), CryptoStreamMode.Write);

m_csstream.Write(m_btEncryptString, 0, m_btEncryptString.Length);

m_csstream.FlushFinalBlock();

m_strEncrypt = Convert.ToBase64String(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_csstream.Close(); m_csstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_AESProvider.Clear(); }

return m_strEncrypt;

}

///

/// AES 解密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael

算法)

///

/// 待解密密文

/// 解密密钥

///

public static string AESDecrypt(string DecryptString, string

DecryptKey)

{

if (string.IsNullOrEmpty(DecryptString)) { throw (new

Exception("密文不得为空")); }

if (string.IsNullOrEmpty(DecryptKey)) { throw (new

Exception("密钥不得为空")); }

string m_strDecrypt = "";

byte[] m_btIV =

Convert.FromBase64String("Rkb4jvUy/ye7Cd7k89QQgQ==");

Rijndael m_AESProvider = Rijndael.Create();

try

{

byte[] m_btDecryptString =

Convert.FromBase64String(DecryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_csstream = new CryptoStream(m_stream,

m_AESProvider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey),

m_btIV), CryptoStreamMode.Write);

m_csstream.Write(m_btDecryptString, 0, m_btDecryptString.Length);

m_csstream.FlushFinalBlock();

m_strDecrypt =

Encoding.Default.GetString(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_csstream.Close(); m_csstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_AESProvider.Clear(); }

return m_strDecrypt;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DES(Data Encryption Standard)是一种对称加密算法,用于保护计算机和网络中的数据安全。DES算法使用相同的密钥进行加密解密操作。 首先,我们来讨论DES加密过程。在加密过程中,原始数据会被分成64位的数据块,并经过一系列复杂的置换、替代和混合等步骤,最终生成一个64位的密文数据块。加密过程中所使用的密钥也是64位的,通过子密钥的生成和迭代,将密钥与数据进行混合运算,从而实现加密操作。DES算法的强度在于它的迭代次数,通常会进行16轮迭代来确保数据的安全性。 接下来,我们来探讨DES解密过程。在解密过程中,密文数据块会经过与加密过程相反的步骤,通过逆向置换、逆向替代和逆向混合等步骤,最终还原为原始的64位明文数据块。与加密过程类似,解密过程中使用的密钥也是相同的。通过迭代生成的子密钥,将密钥与密文数据块进行反向混合运算,实现解密操作。解密过程同样进行16轮迭代,以确保数据的正确性和完整性。 总之,DES算法是一种使用相同密钥进行加密解密的对称加密算法。加密过程将原始数据分成64位数据块,并通过一系列复杂的步骤生成相应的密文数据块。解密过程则是将密文数据块经过相反的操作还原为原始的明文数据块。DES算法可以保护数据的机密性和安全性,广泛应用于计算机和网络领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值