亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

des和Rijndael加密

系統 1848 0

------------IV的作用:
為了保證數據的安全,.NET基類庫中提供的私鑰算法類使用稱作密碼塊鏈(CBC,Cipher Block Chaining)的鏈模式,算法使用一個密鑰和一個初始化向量(IV,Initialization Vector)對數據執行加密轉換。密鑰和初始化向量IV一起決定如何加密數據,以及如何將數據解密為原始數據。通信雙方都必須知道這個密鑰和初始化向量才能夠加密和解密數據。

初始化向量IV的作用:防止隨機產生的明文和密文相同
------------加密類:
#region public static DES encrypt for string
///<summary>
///static DES encrypt for string
///</summary>
///<returns>encrypted string</returns>
///<param name="OriginalString">original string</param>
///<param name="EncryptKey">encrypt key, must 8 characters</param>
///<param name="EncryptOffset">encrypt IV, must >= 8 characters</param>
public static string DesEncryptString(string OriginalString, string EncryptKey, string EncryptOffset)
{
byte[] btKey = Encoding.Default.GetBytes(EncryptKey);
byte[] btIV = Encoding.Default.GetBytes(EncryptOffset);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
using (MemoryStream ms = new MemoryStream())
{
byte[] inData = Encoding.Default.GetBytes(OriginalString);
try
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(inData, 0, inData.Length);
cs.FlushFinalBlock();
}

return Convert.ToBase64String(ms.ToArray());
}
catch
{
return "";
}
}
}

#endregion

#region public static DES decrypt for string
///<summary>
///DES decrypt for string
///</summary>
///<returns>dncrypted string</returns>
///<param name="EncryptedString">original string</param>
///<param name="EncryptKey">encrypt key, must 8 characters</param>
///<param name="EncryptOffset">encrypt IV, must >= 8 characters</param>
public static string DesDecryptString(string EncryptedString, string EncryptKey, string EncryptOffset)
{
byte[] btKey = Encoding.Default.GetBytes(EncryptKey);
byte[] btIV = Encoding.Default.GetBytes(EncryptOffset);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();

using (MemoryStream ms = new MemoryStream())
{
byte[] inData = Convert.FromBase64String(EncryptedString);
try
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(inData, 0, inData.Length);
cs.FlushFinalBlock();
}

return Encoding.Default.GetString(ms.ToArray());
}
catch
{
return "";
}
}
}
#endregion

#region public static DES encrypt for file
/// <summary>
/// DES encrypt for file
/// </summary>
/// <param name="m_InFilePath">Input file path</param>
/// <param name="m_OutFilePath">Output file path</param>
/// <param name="strEncrKey">key, must 8 characters</param>
///<param name="strEncrOffset">encrypt IV, must >= 8 characters</param>
/// <returns>success or not</returns>
public static bool DESEncryptFile(string m_InFilePath, string m_OutFilePath, string strEncrKey, string strEncrOffset)
{
if (File.Exists(m_InFilePath) == false)
{
return false;
}

byte[] btKey = Encoding.Default.GetBytes(strEncrKey);
byte[] btIV = Encoding.Default.GetBytes(strEncrOffset);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] btFile = File.ReadAllBytes(m_InFilePath);

using (FileStream fs = new FileStream(m_OutFilePath, FileMode.Create, FileAccess.Write))
{
try
{
using (CryptoStream cs = new CryptoStream(fs, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(btFile, 0, btFile.Length);
cs.FlushFinalBlock();
}

fs.Close();
}
catch
{
fs.Close();
return false;
}
}

return true;
}
#endregion

#region public static DES decrypt for file
/// <summary>
/// DES decrypt for file
/// </summary>
/// <param name="m_InFilePath">Input file path</param>
/// <param name="m_OutFilePath">Output file path</param>
/// <param name="sDecrKey">key, must 8 characters</param>
///<param name="strEncrOffset">encrypt IV, must >= 8 characters</param>
/// <returns>success or not</returns>
public static bool DESDecryptFile(string m_InFilePath, string m_OutFilePath, string sDecrKey, string strEncrOffset)
{
if (File.Exists(m_InFilePath) == false)
{
return false;
}

byte[] btKey = Encoding.Default.GetBytes(sDecrKey);
byte[] btIV = Encoding.Default.GetBytes(strEncrOffset);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] btFile = File.ReadAllBytes(m_InFilePath);

using (FileStream fs = new FileStream(m_OutFilePath, FileMode.Create, FileAccess.Write))
{
try
{
using (CryptoStream cs = new CryptoStream(fs, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(btFile, 0, btFile.Length);
cs.FlushFinalBlock();
}
fs.Close();
}
catch
{
fs.Close();
return false;
}
}

return true;
}
#endregion

#region public static AES/CBC/PKCS7Padding encrypt for string
///<summary>
///static AES/CBC/PKCS7Padding encrypt for string
///</summary>
///<returns>encrypted string</returns>
///<param name="OriginalString">original string</param>
///<param name="EncryptKey">encrypt key, must 8 characters</param>
///<param name="EncryptOffset">encrypt IV, must >= 8 characters</param>
public static string AESEncryptString(string OriginalString, string EncryptKey, string EncryptOffset)
{
try
{
byte[] btKey = Encoding.Default.GetBytes(EncryptKey);
byte[] btIV = Encoding.Default.GetBytes(EncryptOffset);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = btKey;
rDel.Mode = CipherMode.CBC;
rDel.Padding = PaddingMode.PKCS7;
using (MemoryStream ms = new MemoryStream())
{
byte[] inData = Encoding.Default.GetBytes(OriginalString);
using (CryptoStream cs = new CryptoStream(ms, rDel.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(inData, 0, inData.Length);
cs.FlushFinalBlock();
}
return Convert.ToBase64String(ms.ToArray());
}
}
catch
{
return "";
}
}
#endregion

#region public static AES/CBC/PKCS7Padding decrypt for string
///<summary>
///AES/CBC/PKCS7Padding decrypt for string
///</summary>
///<returns>dncrypted string</returns>
///<param name="EncryptedString">original string</param>
///<param name="EncryptKey">encrypt key, must 8 characters</param>
///<param name="EncryptOffset">encrypt IV, must >= 8 characters</param>
public static string AESDecryptString(string EncryptedString, string EncryptKey, string EncryptOffset)
{
try
{
byte[] btKey = Encoding.Default.GetBytes(EncryptKey);
byte[] btIV = Encoding.Default.GetBytes(EncryptOffset);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = btKey;
rDel.Mode = CipherMode.CBC;
rDel.Padding = PaddingMode.PKCS7;
using (MemoryStream ms = new MemoryStream())
{
byte[] inData = Convert.FromBase64String(EncryptedString);
using (CryptoStream cs = new CryptoStream(ms, rDel.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(inData, 0, inData.Length);
cs.FlushFinalBlock();
}
return Encoding.Default.GetString(ms.ToArray());
}
}
catch
{
return "";
}
}
#endregion
}

des和Rijndael加密


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 在线免费黄色片 | 成人三级做爰在线观看男女 | 久久精品国产亚洲网站 | 伊人网站视频 | 元龙第三季动漫在线观看免费版 | 99网站 | 69成人做爰视频在线观看 | 999精品久久久中文字幕蜜桃 | 亚洲欧美日韩在线 | 女人十八毛片一级毛片免费看 | 色综合网亚洲精品久久久 | 免看一级一片一在线看 | 久久亚洲欧美成人精品 | 中文字幕色婷婷在线视频 | 国产精品久久久久精 | 宅男噜噜噜66一区二区 | 四虎影院观看视频在线观看 | 国产精品福利午夜h视频 | xo欧美性另类| 久久三级视频 | 天天操天天干天天爱 | 中文字幕亚洲精品日韩精品 | 狠狠色丁香久久婷婷综合五月 | a网站免费 | 五月激激激综合网色播免费 | 亚洲综合日韩在线亚洲欧美专区 | 美女一级毛片免费观看 | 香蕉免费一区二区三区在线观看 | 中国欧美日韩一区二区三区 | 四虎国产精品永久在线播放 | 午夜精品久久久久久久第一页 | 97视频在线观看播放 | 日韩不卡高清视频 | 久久国产精品ww | 黄 色 免费网 站 成 人 | 欧洲一级黄色片 | 一级黄色片毛片 | 国产综合成人亚洲区 | 亚洲综合色色图 | 久久一本精品 | 欧美第3页 |