如何利用RSA證書加解密敏感數(shù)據(jù),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
安國ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
RSA算法的描述中,文章利用makecert工具生成的生成的MyTestCert證書舉行加密解密,這個證書具有RSA算法1024位的密鑰對。
Figure 12. RSA加密解密過程如下:
1、 生成證書、發(fā)放證書
證書利用前面“利用makecert工具獲得”章節(jié)生成的MyTestCert,當(dāng)然也能夠是從商業(yè)CA獲得的證書。你獲得的證書該當(dāng)是含有公鑰和私鑰的全面證書,等閑是pfx形式的證書。要接逝步柢數(shù)據(jù),必需把你的公鑰發(fā)放給加密數(shù)據(jù)的加密方,加密方利用你的公鑰加密數(shù)據(jù)。證書要么以pfx形式存在,要么被導(dǎo)入到證書存儲區(qū)。
萬一你的證書存在于證書存儲區(qū)能夠穿越證書管教扼制臺供給的證書導(dǎo)出功能導(dǎo)出只含有公鑰的cer證書。萬一證書以pfx證書文件形式存在,能夠穿越代碼讀取證書然后導(dǎo)出為只含公鑰的cer證書。
2、 字符串明文轉(zhuǎn)成某一代碼頁對應(yīng)的編碼字節(jié)流
待加密的數(shù)據(jù)可能有兩種形式,一種是二進(jìn)制的數(shù)據(jù),本身即便一組字節(jié)流,這么的數(shù)據(jù)能夠跳過這一步,直接進(jìn)去加密環(huán)節(jié)。還有一種情形是字符串?dāng)?shù)據(jù),字符串中同樣的字符利用不同的代碼頁會生成不同的字節(jié)碼,因而從字符串到字節(jié)流的轉(zhuǎn)換是必需指定利用何種編碼的。在解密爾后,要從字節(jié)流通換到字符串即將利用雷同的代碼頁解碼,否則就會揭示亂碼。
//保留明文文件的字節(jié)數(shù)組
Byte[] plainTextByte = Encoding.UTF8.GetBytes(&ldquohttp://www.9tishop.info/lianxiwomen/545.htmlhttp://www.damuge.info/gongsi/627.html;RSA證書對敏感數(shù)據(jù)舉行加密http://www.myfo4.info/lianxiwomen/627.html!”);
這里用utf8代碼頁對明文舉行編碼,把明文字符串轉(zhuǎn)成字節(jié)流。
3、 加密壟斷
//從只包括公鑰的證書文件載入證書
X509Certificate2 myX509Certificate2 = new X509Certificate2(@"C:/Samples/PartnerAEncryptMsg/MyTestCert.cer");
//從cer證書中獲得含公鑰的RSACryptoServiceProvider
RSACryptoServiceProvidermyRSACryptoServiceProvider = (RSACryptoServiceProvider)myX509Certificate2.PublicKey.Key;
//利用RSACryptoServiceProvider把明文字節(jié)流加密為密文字節(jié)流
Byte[] Cryptograph = myRSACryptoServiceProvider.Encrypt(plainTextByte,gexinghua.org false);
利用1024為的密鑰加密,原料該當(dāng)是128字節(jié)(1024位)的byte[]的原始數(shù)據(jù),加密后的數(shù)據(jù)也是128字節(jié)(1024位),萬一明文不足128字節(jié),RSACryptoServiceProvider會積極用隨機(jī)數(shù)補(bǔ)足128字節(jié)。
Dotnet的RSA告終有個個性,它定然要在明文中增加一些隨機(jī)數(shù),因而明文不能把128字節(jié)占滿,切實測驗,明文最多為117字節(jié),留下的空間用來添補(bǔ)隨機(jī)數(shù)。
因而,用統(tǒng)一個密鑰對統(tǒng)一串字符串舉行加密,每次獲得的密文都是不一樣的。
4、 解密壟斷
//從證書文件載入證書,萬一含有私鑰的,必需供給保留證書時設(shè)置的密碼
X509Certificate2 myX509Certificate2 = new X509Certificate2(@"C:/Samples/PartnerAEncryptMsg/MyTestCert.pfx", "password");
//從證書中獲得含私鑰的RSACryptoServiceProvider
RSACryptoServiceProvidermyRSACryptoServiceProvider = (RSACryptoServiceProvider)myX509Certificate2.PrivateKey;
//利用RSACryptoServiceProvider把密文字節(jié)流解密為明文字節(jié)流
byte[] plaintextByte = myRSACryptoServiceProvider.Decrypt(Cryptograph, false);
解密必需載入含私鑰的pfx證書,必需供給私鑰防御密碼。
5、 從編碼字節(jié)流通成字符串明文
利用加密時批準(zhǔn)的同樣的代碼頁utf8把解密后的明文byte[]轉(zhuǎn)成字符串:string Plaintext = Encoding.UTF8.GetString(plaintextByte);
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
標(biāo)題名稱:如何利用RSA證書加解密敏感數(shù)據(jù)
網(wǎng)頁路徑:http://jinyejixie.com/article40/pgeieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、定制網(wǎng)站、搜索引擎優(yōu)化、全網(wǎng)營銷推廣、虛擬主機(jī)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)