最大最专业黑客组织 -- 黑客联盟 -- Hacker Union For China -- www.ChinaHacker.Com -- 黑色矩防火墙 -- 专业防御DDOS攻击

联盟首页 技术文章 软件下载 DDOS防御 核心申请 分站申请 邮局系统 技术咨询 区域分化 广告合作 代理服务 版本V6.22

-------- Welcome To Hacker Union For China !Thank You For Your Support !--------
================ 维护祖国尊严 爱我中华 强我中华 耀我中华 ================
中国黑客联盟>>网络信息  |   中国黑客联盟>>系统知识  |  
中国黑客联盟>>系统知识>>系统常识>>利用RSA证书加解密敏感数据

利用RSA证书加解密敏感数据


RSA算法的描述中,文章利用makecert工具生成的生成的MyTestCert证书举行加密解密,这个证书具有RSA算法1024位的密钥对,详细的内容见下文。

Figure 12. RSA加密解密过程如下:

1、 生成证书、发放证书

证书利用前面“利用makecert工具获得”章节生成的MyTestCert,当然也能够是从商业CA获得的证书。你获得的证书该当是含有公钥和私钥的全面证书,等闲是pfx形式的证书。要接逝步柢数据,必需把你的公钥发放给加密数据的加密方,加密方利用你的公钥加密数据。证书要么以pfx形式存在,要么被导入到证书存储区。

万一你的证书存在于证书存储区能够穿越证书管教扼制台供给的证书导出功能导出只含有公钥的cer证书。万一证书以pfx证书文件形式存在,能够穿越代码读取证书然后导出为只含公钥的cer证书。

2、 字符串明文转成某一代码页对应的编码字节流

待加密的数据可能有两种形式,一种是二进制的数据,本身即便一组字节流,这么的数据能够跳过这一步,直接进去加密环节。还有一种情形是字符串数据,字符串中同样的字符利用不同的代码页会生成不同的字节码,因而从字符串到字节流的转换是必需指定利用何种编码的。在解密尔后,要从字节流通换到字符串即将利用雷同的代码页解码,否则就会揭示乱码。

//保留明文文件的字节数组

Byte[] plainTextByte = Encoding.UTF8.GetBytes(&ldquohttp://www.9tishop.info/lianxiwomen/545.htmlhttp://www.damuge.info/gongsi/627.html;RSA证书对敏感数据举行加密http://www.myfo4.info/lianxiwomen/627.html!”);

这里用utf8代码页对明文举行编码,把明文字符串转成字节流。

3、 加密垄断

//从只包括公钥的证书文件载入证书

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

//从cer证书中获得含公钥的RSACryptoServiceProvider

RSACryptoServiceProvider myRSACryptoServiceProvider = (RSACryptoServiceProvider)myX509Certificate2.PublicKey.Key;

//利用RSACryptoServiceProvider把明文字节流加密为密文字节流

Byte[] Cryptograph = myRSACryptoServiceProvider.Encrypt(plainTextByte,gexinghua.org false);

利用1024为的密钥加密,原料该当是128字节(1024位)的byte[]的原始数据,加密后的数据也是128字节(1024位),万一明文不足128字节,RSACryptoServiceProvider会积极用随机数补足128字节。

Dotnet的RSA告终有个个性,它定然要在明文中增加一些随机数,因而明文不能把128字节占满,切实测验,明文最多为117字节,留下的空间用来添补随机数。

因而,用统一个密钥对统一串字符串举行加密,每次获得的密文都是不一样的。

4、 解密垄断

//从证书文件载入证书,万一含有私钥的,必需供给保留证书时设置的密码

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

//从证书中获得含私钥的RSACryptoServiceProvider

RSACryptoServiceProvider myRSACryptoServiceProvider = (RSACryptoServiceProvider)myX509Certificate2.PrivateKey;

//利用RSACryptoServiceProvider把密文字节流解密为明文字节流

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

解密必需载入含私钥的pfx证书,必需供给私钥防御密码。

5、 从编码字节流通成字符串明文

利用加密时批准的同样的代码页utf8把解密后的明文byte[]转成字符串:string Plaintext = Encoding.UTF8.GetString(plaintextByte);

原作者:不详
来 源:不详
共有3096位读者阅读过此文

□- 本周热门文章
1.phpstudy后门植入漏洞[5337432]
2.拒绝服务攻击原理及解决方法[133152]
3.Microsoft IE VBScr...[114862]
4.如何破解无线路由器和WEP密码[61700]
5.7种DoS攻击方法简述[60666]
6.使用QQ时如何避开木马攻击的小技巧[49511]
7.网络攻击概述[47896]

关于我们 | 分站申请 | 成员申请 | 技术论坛 | 站内导航 | 合作伙伴 | 联系我们

Copyrights © 2002 - 2019 www.ChinaHacker.com All Rights Reserved

版权所有   中 国 黑 客 联 盟

(Hacker Union For China V 6.22)

闽ICP备05007859号