欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 日本香港三级和澳门三级 | 免费黄色av | 天堂中文资源网 | 三级斤| 亚洲色四在线视频观看 | 自拍偷拍视频网站 | 成人免费在线 | 国产毛片欧美毛片久久久 | 亚洲一区播放 | 奇米影视在线观看 | 欧美一级视频在线观看欧美 | www国产精品 | 日日骚 | 日韩视频高清 | 亚洲国产资源 | 五月天婷婷网亚洲综合在线 | 久久精品视香蕉蕉er大臿蕉 | 午夜影院毛片 | 欧美性一区二区三区 | 被玩坏了的女老师(高h np) | 2019中文字幕视频 | 国产亚洲综合一区二区在线 | 91亚洲精品丁香在线观看 | 国产精品99爱免费视频 | 欧美日韩91 | 国产精品97在线 | 成人免费淫片aa视频免费 | 欧美综合自拍亚洲综合网 | 成人夜晚看av | 婷婷qvod| 欧美午夜影院 | 国内精品伊人久久久影视 | 排球少年第四季樱花动漫 | 日韩在线观看中文字幕 | 99久久国产综合精品2020 | 国产一级做a爰片在线 | 激情色播| 欧美国产在线观看 | 在线观看日韩 | 国产第一页浮力 | 久久婷婷色香五月综合激情 |