當前位置:網站首頁>對稱加密--DES加密 c#
對稱加密--DES加密 c#
2022-01-28 05:16:32 【畹在水中芷】
轉載:From <https://www.cnblogs.com/wifi/articles/2482350.html>
對稱加密--DES加密
需要密鑰
1. 加密字符串
2. 輸出加密後的字符串
3. 解密字符串並輸出
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static string encryptKey = "Oyea"; //定義密鑰
#region 加密字符串
/// <summary> /// 加密字符串
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns>加密後的字符串</returns>
static string Encrypt(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); //實例化加/解密類對象
byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定義字節數組,用來存儲密鑰
byte[] data = Encoding.Unicode.GetBytes(str);//定義字節數組,用來存儲要加密的字符串
MemoryStream MStream = new MemoryStream(); //實例化內存流對象
//使用內存流實例化加密流對象
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length); //向加密流中寫入數據
CStream.FlushFinalBlock(); //釋放加密流
return Convert.ToBase64String(MStream.ToArray());//返回加密後的字符串
}
#endregion
#region 解密字符串
/// <summary>
/// 解密字符串
/// </summary>
/// <param name="str">要解密的字符串</param>
/// <returns>解密後的字符串</returns>
static string Decrypt(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); //實例化加/解密類對象
byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定義字節數組,用來存儲密鑰
byte[] data = Convert.FromBase64String(str);//定義字節數組,用來存儲要解密的字符串
MemoryStream MStream = new MemoryStream(); //實例化內存流對象
//使用內存流實例化解密流對象
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length); //向解密流中寫入數據
CStream.FlushFinalBlock(); //釋放解密流
return Encoding.Unicode.GetString(MStream.ToArray()); //返回解密後的字符串
}
#endregion
static void Main(string[] args)
{
Console.Write("請輸入要加密的字符串:"); //提示輸入字符串
Console.WriteLine(); //換行輸入
string str = Console.ReadLine(); //記錄輸入的字符串
string strNew = Encrypt(str); //加密字符串
Console.WriteLine("加密後的字符串:" + strNew); //輸出加密後的字符串
Console.WriteLine("解密後的字符串:" + Decrypt(strNew)); //解密字符串並輸出
Console.ReadLine();
}
}
}
版權聲明
本文為[畹在水中芷]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201280516316357.html
邊欄推薦
猜你喜歡
隨機推薦
- win7系統上將電腦變為熱點的辦法
- Jedis連接阿裏雲redis
- 線程的生命周期,真的沒那麼簡單
- 【行研資料】2021年中國AI中臺賦能城市空間管理白皮書——附下載
- emplace_back 和 push_back 的區別
- 藍橋杯第三講--二分【習題】
- 地址的地址?
- Qt給靜態屏保加上粒子特效
- 圖的著色問題
- cesium導入旋轉動畫
- QGC雜記
- 面試面到自閉,職場反思,原來是我沒有掌握其中精髓
- CISP——關於網絡安全法(分享筆記)
- 通過ReentrantLock源碼看AQS源碼實現
- Js基礎_作用域
- Endnote使用方法——檢查參考文獻
- 記錄在appA裏面打開appB進行登錄,再次點擊桌面圖標appB避免再次重新啟動程序的解决辦法
- 自建Kubernetes的LoadBalancer類型服務方案-MetalLB
- JS中的forEach()和map()方法介紹
- 【ISO15765_UDS&OBD診斷】-02-Network layer網絡層介紹
- 百度BML-飛槳服務器以及Jetson nano部署實戰案例(下)
- 適合10歲小孩投保的保險產品都有什麼啊?少兒險可以買哪些險種?
- 北京大學2022年對元宇宙的全球研究報告
- 網上期貨開戶安全麼?期貨開戶准備什麼資料?
- 查看多臺jps的脚本
- #全網寒假最火特輯# 【第一章】 C語言之牛客網刷題筆記 【點進來保證讓知識充實你一整個寒假】
- Material Design 3 全新的進階版本UI庫
- 雲演 CTF Web題型 lfi 文件包含
- 【leectode 2022.1.22】批量處理任務
- IC驗證中的force/release 學習整理(4)後門訪問機制成與敗(續)
- Leetcode 算法面試沖刺 實戰 五(數組與循環)(十二)
- 數學建模-模糊綜合評價法(評價模型)
- Vulnhub靶機recon: 1滲透
- DWR异常:org.xml.sax.SAXException
- ZZULIOJ 1173: 密碼解密(指針專題)
- 掃雷初階版
- DCGAN 源碼解析
- [渝粵教育] 東南大學 工程熱力學 參考 資料
- Go 自定義日期時間格式解析解决方案 - 解决 `parsing time xx as xx: cannot parse xx as xx` 錯誤
- Redis 是如何處理命令的(客戶端)