自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用RSA證書加解密敏感數(shù)據(jù)

安全 數(shù)據(jù)安全
X.509證書規(guī)范扶持三種不對稱加密算法:RSA, DSA, Diffie-Hellman algorithms。本文來為大家介紹最常用的RSA,希望大家能夠?qū)用芗夹g(shù)有一個深入地了解。

RSA算法的描述中,文章利用makecert工具生成的生成的MyTestCert證書舉行加密解密,這個證書具有RSA算法1024位的密鑰對,詳細的內(nèi)容見下文。 

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ù)可能有兩種形式,一種是二進制的數(shù)據(jù),本身即便一組字節(jié)流,這么的數(shù)據(jù)能夠跳過這一步,直接進去加密環(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

RSACryptoServiceProvider myRSACryptoServiceProvider = (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會積極用隨機數(shù)補足128字節(jié)。

Dotnet的RSA告終有個個性,它定然要在明文中增加一些隨機數(shù),因而明文不能把128字節(jié)占滿,切實測驗,明文最多為117字節(jié),留下的空間用來添補隨機數(shù)。

因而,用統(tǒng)一個密鑰對統(tǒng)一串字符串舉行加密,每次獲得的密文都是不一樣的。

4、 解密壟斷

//從證書文件載入證書,萬一含有私鑰的,必需供給保留證書時設(shè)置的密碼

X509Certificate2 myX509Certificate2 = new X509Certificate2(@"C:/Samples/PartnerAEncryptMsg/MyTestCert.pfx", "password");

//從證書中獲得含私鑰的RSACryptoServiceProvider

RSACryptoServiceProvider myRSACryptoServiceProvider = (RSACryptoServiceProvider)myX509Certificate2.PrivateKey;

//利用RSACryptoServiceProvider把密文字節(jié)流解密為明文字節(jié)流

byte[] plaintextByte = myRSACryptoServiceProvider.Decrypt(Cryptograph, false);

解密必需載入含私鑰的pfx證書,必需供給私鑰防御密碼。

5、 從編碼字節(jié)流通成字符串明文

利用加密時批準的同樣的代碼頁utf8把解密后的明文byte[]轉(zhuǎn)成字符串:string Plaintext = Encoding.UTF8.GetString(plaintextByte);

RSA加密算法的敘述就結(jié)束了,你看懂了嗎?如果理解起來有些困難,你還可以在:http://netsecurity.51cto.com/art/200512/13527.htm中尋找些基礎(chǔ)的內(nèi)容附注你理解。

【編輯推薦】

  1. 生成和交換預(yù)共享密鑰
  2. PKI基礎(chǔ)內(nèi)容介紹(1)
  3. 破解你的密碼需要多長時間?
  4. 信息安全的核心之密碼技術(shù) 上
  5. 揭露維基解密竊取機密信息新手段
  6. 防御網(wǎng)絡(luò)威脅UTM技術(shù)解密(圖示)
責(zé)任編輯:佚名 來源: 新浪
相關(guān)推薦

2022-01-26 07:25:09

PythonRSA加解密

2024-01-01 14:19:11

2020-12-13 09:40:11

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全加密方法

2016-09-27 19:30:11

2009-04-20 15:59:51

數(shù)據(jù)丟失產(chǎn)品RSA

2010-09-25 08:55:29

2023-10-23 10:39:05

2020-10-25 09:04:46

數(shù)據(jù)加密數(shù)據(jù)泄露攻擊

2023-06-27 07:26:36

汽車之家敏感數(shù)據(jù)治理

2023-10-30 15:35:05

數(shù)據(jù)安全數(shù)據(jù)驅(qū)動

2020-04-16 08:00:00

Ansible Vau敏感數(shù)據(jù)加密

2021-09-16 10:11:15

Dataphin 數(shù)據(jù)保護

2024-03-05 09:40:35

2021-10-28 09:42:38

代碼編碼開發(fā)

2012-04-12 14:45:12

賽門鐵克云南電網(wǎng)

2024-01-01 15:53:25

2020-12-20 17:30:17

數(shù)據(jù)匿名化敏感數(shù)據(jù)數(shù)據(jù)庫

2025-01-21 14:48:39

2024-10-15 10:38:32

2019-10-16 09:01:22

HTTPS RSA解密
點贊
收藏

51CTO技術(shù)棧公眾號