欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

des和Rijndael加密

系統 1950 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精品免费视频 | 天天综合久久 | 国产亚洲综合视频 | 欧美激情综合色综合啪啪五月 | 99福利 | 国产小视频免费在线观看 | 免费级毛片| 精品免费福利视频 | 国模无水印一区二区三区 | 99成人精品视频 | 国内成人自拍视频 | 色噜噜噜噜噜在线观看网站 | 人人插人人草 | 国产一区二区三区不卡在线观看 | 黄色视屏免费看 | 免费视频97碰碰碰在线观看 | www.99riav.com | 免费A片线观看成人在-杏TV | 一区二区三区在线观看视频 | 91精品成人免费国产 | a成人| 一区二区三区中文字幕 | 国产精品久久久久久久久电影网 | 我和我的祖国电影在线观看免费版高清 | 日本妇人成熟A片一区-老狼 | 日韩免费在线视频 | 91亚洲精品丁香在线观看 | 日韩高清第一页 | 欧美一区二区三区免费不卡 | 亚洲免费人成在线视频观看 | 国产一级视频 | 成在线视频 |