欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在ASP.Net中實(shí)現(xiàn)RSA加密的方法

 更新時(shí)間:2013年11月07日 15:32:28   作者:  
這篇文章介紹了在ASP.Net中實(shí)現(xiàn)RSA加密的方法,有需要的朋友可以參考一下

在我們實(shí)際運(yùn)用中,加密是保證數(shù)據(jù)安全的重要手段。以前使用ASP時(shí),對(duì)數(shù)據(jù)加密可以使用MD5和SHA1算法,這兩種算法雖然快捷有效,但是無(wú)法對(duì)通過(guò)它們加密的密文進(jìn)行反運(yùn)算,即是解密。因此需要解密數(shù)據(jù)的場(chǎng)合,這兩種方法就不太適合了。當(dāng)然你也可以自己編寫(xiě)適用的加密和解密程序,不過(guò)這對(duì)編寫(xiě)者的數(shù)學(xué)水平有很高的要求,一般人是很難做到的。

現(xiàn)在,隨著ASP.Net的推出,徹底改變了以前ASP下的編程模式。我們能夠利用.Net Framework中的類(lèi)提供的加密服務(wù)來(lái)保證數(shù)據(jù)安全。目前應(yīng)用較為廣泛的加密方法是使用RSA算法進(jìn)行加密。在.Net Framework中與RSA加密算法相關(guān)的類(lèi)主要有兩個(gè):RSA 類(lèi)和RSACryptoServiceProvider 類(lèi)。按照MSDN的說(shuō)法RSA 類(lèi)是“表示 RSA 算法的所有實(shí)現(xiàn)均從中繼承的基類(lèi)”,而RSACryptoServiceProvider 類(lèi)是“使用加密服務(wù)提供程序 (CSP) 提供的 RSA 算法的實(shí)現(xiàn)執(zhí)行不對(duì)稱(chēng)加密和解密”。另外,“表示 RSA 算法的標(biāo)準(zhǔn)參數(shù)”的RSAParameters 結(jié)構(gòu)也是很重要的,它保存了RSA算法的參數(shù)。

由于介紹RSA算法原理的文章或書(shū)籍比較多,大家可以參閱一下,在此就不復(fù)述了。下面著重介紹一下如何在ASP.Net中實(shí)現(xiàn)RSA加密。

RSA參數(shù)的產(chǎn)生:RSA參數(shù)的類(lèi)型就是上面提到的RSAParameters 結(jié)構(gòu),查閱MSDN可知其包含了D、DP、DQ、Exponent、InverseQ、Modulus、P、Q八個(gè)字段。加密時(shí)僅需要Exponent和Modulus兩個(gè)值,可看成公鑰。解密時(shí)所有字段都需要,可看成私鑰。下面這段程序顯示了如何產(chǎn)生RSA兩個(gè)參數(shù):

復(fù)制代碼 代碼如下:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
RSAParameters rsaParamsExcludePrivate=rsa.ExportParameters(false);
RSAParameters rsaParamsIncludePrivate=rsa.ExportParameters(true);

RSACryptoServiceProvider類(lèi)的ExportParameters(bool)方法用于導(dǎo)出RSA參數(shù),true表示導(dǎo)出上述八個(gè)字段的“私鑰”,false表示導(dǎo)出“公鑰”。

使用RSA參數(shù)進(jìn)行加密解密:這一步需要把上面兩個(gè)參數(shù)導(dǎo)入到RSACryptoServiceProvider類(lèi)對(duì)象中,再用它對(duì)數(shù)據(jù)進(jìn)行加密。如下面的代碼所示,我們可以寫(xiě)一個(gè)函數(shù)來(lái)完成加密過(guò)程:

復(fù)制代碼 代碼如下:

Public byte [ ] RSAEncrypt ( byte [ ] b)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParamsExcludePrivate); //導(dǎo)入公鑰
byte [] EncryptedData=rsa.Encrypt(DataToEncrypt,false);
return EncryptedData;
}

解密時(shí)只要把rsa.ImportParameters(rsaParamsExcludePrivate)換成rsa.ImportParameters(rsaParamsExcludePrivate),再把Encrypt換成Decrypt就行了。

保存和加載RSA參數(shù):RSA參數(shù)可以保存為XML格式,下面代碼說(shuō)明了如何保存和加載(只列出了關(guān)鍵部分)

保存:

復(fù)制代碼 代碼如下:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
StreamWriter writer=new StreamWriter(@"d:\PublicAndPrivateKey.xml");
string PPKeyXml=rsa.ToXmlString(true);//保存私鑰 writer.Write(PPKeyXml);
writer.Close();
writer=new StreamWriter(@"d:\PublicKey.xml");
string PKeyXml=rsa.ToXmlString(false);//保存公鑰
writer.Write(PKeyXml);
writer.Close();

讀?。?/P>

復(fù)制代碼 代碼如下:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
StreamReader reader=new StreamReader(@"d:\PublicKey.xml");
string PKey=reader.ReadToEnd();
rsa.FromXmlString(PKey);
reader.Close();
StreamReader reader=new StreamReader(@"d:\PublicAndPrivateKey.xml");
string PPKey=reader.ReadToEnd();
reader.Close();

ToXmlString和ExportParameters方法類(lèi)似,false表示保存“公鑰”,true表示保存“私鑰”。

相關(guān)文章

  • Springboot服務(wù)Docker化自動(dòng)部署的實(shí)現(xiàn)方法

    Springboot服務(wù)Docker化自動(dòng)部署的實(shí)現(xiàn)方法

    這篇文章主要介紹了Springboot服務(wù)Docker化自動(dòng)部署的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • ASP.NET Core 過(guò)濾器中使用依賴(lài)注入知識(shí)點(diǎn)總結(jié)

    ASP.NET Core 過(guò)濾器中使用依賴(lài)注入知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于ASP.NET Core 過(guò)濾器中使用依賴(lài)注入的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • 在ASP.NET中下載文件的實(shí)現(xiàn)代碼

    在ASP.NET中下載文件的實(shí)現(xiàn)代碼

    通過(guò)ASP.NET來(lái)下載文件,這個(gè)問(wèn)題可大可小,我們先從小的開(kāi)始。當(dāng)我們要讓用戶(hù)下載一個(gè)文件
    2012-02-02
  • asp.net core 獲取 MacAddress 地址方法示例

    asp.net core 獲取 MacAddress 地址方法示例

    這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 詳解IdentityServer4介紹和使用

    詳解IdentityServer4介紹和使用

    在.NETCORE中更傾向于使用Identityserver4組件來(lái)構(gòu)建認(rèn)證授權(quán)服務(wù),原因是IdentityServer4?是為ASP.NET?Core系列量身打造的一款基于?OpenID?Connect?和?OAuth?2.0?認(rèn)證框架,本文重點(diǎn)介紹IDS4實(shí)際使用過(guò)程中涉及到的技術(shù)點(diǎn),感興趣的朋友一起看看吧
    2022-07-07
  • EF?Core基礎(chǔ)入門(mén)教程

    EF?Core基礎(chǔ)入門(mén)教程

    這篇文章介紹了EF?Core的基礎(chǔ)入門(mén)教程,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • ASP.NET XmlDocument類(lèi)詳解

    ASP.NET XmlDocument類(lèi)詳解

    這篇文章主要介紹了ASP.NET XmlDocument類(lèi)詳解,本文講解了XmlDocument的屬性、XmlDocument的方法、XmlDocument的事件、XmlDocument的使用實(shí)例等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • asp.net 簡(jiǎn)單工廠模式和工廠方法模式之論述

    asp.net 簡(jiǎn)單工廠模式和工廠方法模式之論述

    簡(jiǎn)單工廠模式的最大優(yōu)點(diǎn)在于工廠類(lèi)中包含了必要的邏輯判斷,根據(jù)客戶(hù)端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類(lèi),對(duì)于客戶(hù)端來(lái)說(shuō),去除了于具體產(chǎn)品的依賴(lài)
    2011-12-12
  • iis 服務(wù)器應(yīng)用程序不可用的解決方法

    iis 服務(wù)器應(yīng)用程序不可用的解決方法

    訪問(wèn)頁(yè)面時(shí)提示 服務(wù)器應(yīng)用程序不可用,大家可以按照下面的方法重新注冊(cè)下,應(yīng)該能好點(diǎn)
    2008-11-11
  • ASP.Net中英文復(fù)合檢索文本框?qū)崿F(xiàn)思路及代碼

    ASP.Net中英文復(fù)合檢索文本框?qū)崿F(xiàn)思路及代碼

    前段時(shí)間,寫(xiě)一個(gè)用戶(hù)部門(mén)的管理頁(yè)面,需要對(duì)后臺(tái)獲取的用戶(hù)數(shù)據(jù)實(shí)現(xiàn)英漢檢索功能于是就有了下文,編輯的很詳細(xì)圖文并茂呢?感興趣的你可不要錯(cuò)過(guò)了哈,或許本文對(duì)你有所幫助呢
    2013-02-02

最新評(píng)論