狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 加解密之RSA

admin
2023年2月27日 10:27 本文熱度 604

   RSA,非對稱加密,簡單可以理解為現在有兩把鑰匙,一把只能用來開,一把只能用來關,所以這跟前面寫的對稱加密是不一樣的;

原理和算法的話,不談。。。還是自己去查吧,費腦子。

主要說下優缺點吧,首先就是RSA的安全性高,嗯,很高,比DES和AES要高很多,但由于密鑰長度或者算法復雜度的提高就會帶來性能的損失,所以RSA的效率就比較低,所以我們一般不會采用RSA加密一些大的數據,如果非要加密的話,可以采用混合加密,比如DES或者AES來加密數據,用RSA來加密密鑰;或者采用分塊加密的方式,即只加密其中一部分或者關鍵部分。

RSA一般公鑰用來加密,私鑰用來做解密,所以我們這里需要預先生成兩把密鑰。生成密鑰的方式也有很多種,這里就采用最直接的方式了。

實現功能:

    • 使用RSA加密方式加解密文本數據

開發環境:

開發工具:Visual Studio 2013

.NET Framework版本:4.5

實現代碼:

  /// <summary>        /// 生成公鑰和私鑰        /// </summary>        /// <returns></returns>        public static RsaKey createKey()        {            RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider();            RsaKey rsaKey = new RsaKey();
rsaKey.PublicKey=rsaProvider.ToXmlString(false); rsaKey.PrivateKey = rsaProvider.ToXmlString(true); return rsaKey; }
/// <summary> /// RSA加密 /// </summary> /// <param name="rsaModel"></param> /// <returns></returns> public static byte[] Encrypt(RsaModel rsaModel) { RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(); byte[] result = null; try { rsaProvider.fromXmlString(rsaModel.Key); result = rsaProvider.Encrypt(rsaModel.Data, false); } catch { } return result; }
/// <summary> /// RSA解密 /// </summary> /// <param name="rsaModel"></param> /// <returns></returns> public static byte[] Decrypt(RsaModel rsaModel) { RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(); byte[] result = null; try { rsaProvider.fromXmlString(rsaModel.Key); result = rsaProvider.Decrypt(rsaModel.Data, false); } catch { } return result; }
/// <summary> /// RSA加密字符串 /// </summary> /// <param name="data">要加密的字符串</param> /// <param name="key">公鑰</param> /// <returns></returns> public static string Encrypt(string data, string key) { byte[] bytes = Encoding.UTF8.GetBytes(data); byte[] result = Encrypt(new RsaModel { Data = bytes, Key = key }); if (result == null) { return ""; } return Convert.ToBase64String(result); }
/// <summary> /// RSA解密字符串 /// </summary> /// <param name="data">要解密的字符串</param> /// <param name="key">私鑰</param> /// <returns></returns> public static string Decrypt(string data, string key) { byte[] bytes = Convert.fromBase64String(data); byte[] result = Decrypt(new RsaModel { Data = bytes, Key = key }); if (result == null) { return ""; } return Encoding.UTF8.GetString(result); }
public class RsaKey { /// <summary> /// 公鑰 /// </summary> public string PublicKey { get; set; }
/// <summary> /// 私鑰 /// </summary> public string PrivateKey { get; set; } }
public class RsaModel { /// <summary> /// 需要加密/解密的數據 /// </summary> public byte[] Data { get; set; }
/// <summary> /// 密鑰(加密:公鑰;解密:私鑰) /// </summary> public string Key { get; set; } }

  RsaUtil.RsaKey rsaKey = new RsaUtil.RsaKey();        private void btn_Rsa_Encrypt_Click(object sender, EventArgs e)        {            rsaKey = RsaUtil.createKey();            string result = RsaUtil.Encrypt(textBox1.Text, rsaKey.PublicKey);            textBox2.Text = result;        }
private void btn_Rsa_Decrypt_Click(object sender, EventArgs e) { string result = RsaUtil.Decrypt(textBox2.Text, rsaKey.PrivateKey); textBox1.Text = result; }

實現效果:



該文章在 2023/2/27 10:27:27 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved