class Program
{
static void Main(string[] args)
{

RSAPublicKey P = new RSAPublicKey();
P.Exponent = "AAAAAAAA";
P.Modulus = "BBBBBBBBBB";
string S = XmlUtil.Serializer(typeof(RSAPublicKey), P);
//string activeDir = Server.MapPath("~/Custom/");

// RSAPublicKey PublicKey = XmlUtil.Deserialize(typeof(RSAPublicKey), @"D:\\xml\\Publickey.xml") as RSAPublicKey;
string a = "123";
string a2 = RSAEncrypt(a);
string b = RSADecrypt(a2);
}

private static RSAPublicKey getRSAPublicKey()
{
RSAPublicKey PublicKey = XmlUtil.Deserialize(typeof(RSAPublicKey), @"D:\xml\Publickey.xml") as RSAPublicKey;
return PublicKey;

}

private static RSAPrivateKey getRSARSAPrivateKey()
{
RSAPrivateKey PrivateKey = XmlUtil.Deserialize(typeof(RSAPrivateKey), @"D:\xml\PrivateKey.xml") as RSAPrivateKey;
return PrivateKey;

}
/// <summary>
/// RSA加密 yms2016
/// </summary>
/// <param name="plainText">明文</param>
/// <returns>密文</returns>
public static string RSAEncrypt(string plainText)
{
RSAPublicKey key = getRSAPublicKey();
try
{
RSAParameters rsaParam = new RSAParameters();
//rsaParam.Exponent = Convert.FromBase64String(GlobalParameter.RSA_PARAM_EXPONENT);
//rsaParam.Modulus = Convert.FromBase64String(GlobalParameter.RSA_PARAM_MODULUS);

//rsaParam.Exponent = Convert.FromBase64String("AQAB");
//rsaParam.Modulus = Convert.FromBase64String("6YPSotU5ioFyM0fyJIz2uP5NUodIkTC3mOVemRd8OV5tCtdf+LmpnI4NIR5phxoIdN7GzoLiryGWs/E4jUvjCkVCY+XO4R+xEkrUSBCytUjiSHcMGvjX3ZosGoT7H/IuMGclRz9lOptbCSWZYQmfHea4yrJ1Azybu9lj1BT6ZnU=");

rsaParam.Exponent = Convert.FromBase64String(key.Exponent.Trim());
rsaParam.Modulus = Convert.FromBase64String(key.Modulus.Trim());

return RSAEncrypt(plainText, rsaParam);
}
catch (CryptographicException)
{
return null;
}
}

/// <summary>
/// RSA解密
/// </summary>
/// <param name="cypherText">密文</param>
/// <returns>明文</returns>
public static string RSADecrypt(string cypherText)
{
RSAPrivateKey key = getRSARSAPrivateKey();
try
{
RSAParameters rsaParam = new RSAParameters();
//rsaParam.Exponent = Convert.FromBase64String(GlobalParameter.RSA_PARAM_EXPONENT);
//rsaParam.Modulus = Convert.FromBase64String(GlobalParameter.RSA_PARAM_MODULUS);
//rsaParam.InverseQ = Convert.FromBase64String(GlobalParameter.RSA_PARAM_INVERSEQ);
//rsaParam.D = Convert.FromBase64String(GlobalParameter.RSA_PARAM_D);
//rsaParam.P = Convert.FromBase64String(GlobalParameter.RSA_PARAM_P);
//rsaParam.Q = Convert.FromBase64String(GlobalParameter.RSA_PARAM_Q);
//rsaParam.DP = Convert.FromBase64String(GlobalParameter.RSA_PARAM_DP);
//rsaParam.DQ = Convert.FromBase64String(GlobalParameter.RSA_PARAM_DQ);

//rsaParam.Exponent = Convert.FromBase64String("AQAB");
//rsaParam.Modulus = Convert.FromBase64String("6YPSotU5ioFyM0fyJIz2uP5NUodIkTC3mOVemRd8OV5tCtdf+LmpnI4NIR5phxoIdN7GzoLiryGWs/E4jUvjCkVCY+XO4R+xEkrUSBCytUjiSHcMGvjX3ZosGoT7H/IuMGclRz9lOptbCSWZYQmfHea4yrJ1Azybu9lj1BT6ZnU=");
//rsaParam.InverseQ = Convert.FromBase64String("USMiemxLJHeYXFk0N2gfVz4x7q/Wc1L4y9/KRRzAXgjc6cq7223SL1td7lCl/sX4puRevt466U6tZRG/u6lozA==");
//rsaParam.D = Convert.FromBase64String("sYVTdhKfIdpylOWXAY5gahZ5dcn+stHUYVnN5phiCcLtJpbBEPckKC4dcRYLp3d1AlPx00DRT847ISS6l0AfolUclUanw1mTUfe29D7TrG4/ZGBqNbit1PcqT/gT+dl5JWC1cZU/+Z3fGNpjMwwWhsGlimow5ViRpalt4FiPMoE=");
//rsaParam.P = Convert.FromBase64String("/wh2zBrCZGux+aLRCakuH/oGB4PsgcYrILWz7esWLBpqZg5P3YHuOV55aCbPpu8EwFfvs0XgY8ra02odUGlssQ==");
//rsaParam.Q = Convert.FromBase64String("6mZ5IhA6osdI7r/D2JkGE3YAUS6kE3iEJxwS8mv5Dnse5b/xVg/ShhhGEeEywIktLZdKSymW0ilxAMciPPV3BQ==");
//rsaParam.DP = Convert.FromBase64String("17jGG/FKmvzJp3pETWKwZFXtga/ifwcr9dgcoVPoBlg1xau3fItqAVbbZPDnVrH5F+WKGN8zZdXx8UBiGWGDkQ==");
//rsaParam.DQ = Convert.FromBase64String("uexEIte6msj1uaJT5uch4afUgpA7RtJuCFOFV9J6/5h7HoOMGtZ8By8TzTTSO9PTCPmazVmUruh+IL7TEoUlPQ==");

rsaParam.Exponent = Convert.FromBase64String(key.Exponent.Trim());
rsaParam.Modulus = Convert.FromBase64String(key.Modulus.Trim());
rsaParam.InverseQ = Convert.FromBase64String(key.InverseQ.Trim());
rsaParam.D = Convert.FromBase64String(key.D.Trim());
rsaParam.P = Convert.FromBase64String(key.P.Trim());
rsaParam.Q = Convert.FromBase64String(key.Q.Trim());
rsaParam.DP = Convert.FromBase64String(key.DP.Trim());
rsaParam.DQ = Convert.FromBase64String(key.DQ.Trim());

return RSADecrypt(cypherText, rsaParam);
}
catch (CryptographicException)
{
return null;
}
}

/// <summary>
/// RSA加密
/// </summary>
/// <param name="plainText">明文</param>
/// <param name="rsaParam">公钥私钥参数</param>
/// <returns>密文</returns>
public static string RSAEncrypt(string plainText, RSAParameters rsaParam)
{
try
{
UTF8Encoding encoder = new UTF8Encoding();
byte[] dataToEncrypt = encoder.GetBytes(plainText);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParam);
byte[] bytesCypherText = rsa.Encrypt(dataToEncrypt, false);
return Convert.ToBase64String(bytesCypherText);
}
catch (CryptographicException)
{
return null;
}
}

/// <summary>
/// RSA解密
/// </summary>
/// <param name="cypherText">密文</param>
/// <param name="rsaParam">公钥私钥参数</param>
/// <returns>明文</returns>
public static string RSADecrypt(string cypherText, RSAParameters rsaParam)
{
try
{
byte[] dataToDecrypt = Convert.FromBase64String(cypherText);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParam);
byte[] bytesPlainText = rsa.Decrypt(dataToDecrypt, false);
UTF8Encoding encoder = new UTF8Encoding();
return encoder.GetString(bytesPlainText);
}
catch (CryptographicException)
{
return null;
}
}
}

如有兴趣,加qq群围观:337335820

RSA加密算法的更多相关文章

  1. .net(c#)版RSA加密算法,拿走不谢

    今天有同学对接一个支付平台,涉及到RSA的签名和验签.由于对方是java的sdk,翻成c#语言时,搞了半天也没搞定.网上搜的东西都是各种copy还不解决问题. 碰巧,我之前对接过连连银通的网银支付和代 ...

  2. RSA加密算法的简单案例

    RSA加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击. 那关于RSA加密算法有哪些应用呢?以下举一个数据库身份验证的案例. 在使用数据集进行身份认证时,密码存在数据 ...

  3. RSA加密算法的java实现

    package rsa; import java.security.*;import java.security.interfaces.*;import javax.crypto.*; public ...

  4. 用实例讲解RSA加密算法(精)

    RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名.RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经 ...

  5. 关于RSA加密算法的长度限制问题

    RSA是常用的非对称加密算法.近来有学生在项目中使用System.Security类库中的RSA加密算法时,出现了“不正确的长度”,这实际上是因为待加密的数据超长所致..net Framework中提 ...

  6. RSA加密算法的加密与解密

    转发原文链接:RSA加密算法加密与解密过程解析 1.加密算法概述 加密算法根据内容是否可以还原分为可逆加密和非可逆加密. 可逆加密根据其加密解密是否使用的同一个密钥而可以分为对称加密和非对称加密. 所 ...

  7. 【python网络编程】使用rsa加密算法模块模拟登录新浪微博

    一.基础知识 http://blog.csdn.net/pi9nc/article/details/9734437 二.模拟登录 因为上学期参加了一个大数据比赛,需要抓取数据,所以就想着写个爬虫抓取新 ...

  8. 轻松学习RSA加密算法原理

    转自:http://blog.csdn.net/sunmenggmail/article/details/11994013 http://blog.csdn.net/q376420785/articl ...

  9. RSA加密算法原理及RES签名算法简介

    第一部分:RSA算法原理与加密解密 一.RSA加密过程简述 A和B进行加密通信时,B首先要生成一对密钥.一个是公钥,给A,B自己持有私钥.A使用B的公钥加密要加密发送的内容,然后B在通过自己的私钥解密 ...

  10. 浅谈RSA加密算法

    一.什么是非对称加密 1.加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2.密钥分为:公钥,私钥  公钥:可以对外给任何人的加密和解密的密码,是公开的 私钥:通过私钥可以生成公钥,但从 ...

随机推荐

  1. 感觉不止被Q了一下,还不知道被谁套了一个虚弱

    最近身体出现了一些问题,导致博客无法正常更新,只能是看身体状态更新了,相信用不了半个月就会满血复活的,请谅解 Joker在这里提醒大家  身体是革命的本钱,不要透支,不要过度消耗

  2. C#数据结构之串

    串(string)是n(n>=0)个字符组成的有限序列. 由于串中的字符都是连续存储的,在C#中有恒定不变的特性.一经创建就保持不变. 为了区别C#中的string,因此以stringDS类模拟 ...

  3. Linux--shell脚本之文本处理工具

    文本处理工具--grep.sed.awk Bash Shell提供了功能强大的文件处理工具:sed(流编辑器stream editor)和awk,都可使用正则表达式进行模式匹配. 而grep又有助于理 ...

  4. 实时监听input标签输入 实时监听文本框输入 避免中文输入法无法触发onkeyup事件的问题

    前言: 对于实时监听输入,这种需求大多数都是用于一个联想字提醒,智能提醒.大家都知道onkeydown,onkeypress,onkeyup的在监听中文输入法或者右键粘贴的时候都存在一些弊端,不是那么 ...

  5. STM32、Cortex-A、Cortex-R、Cortex-M、SecurCore

    STM32是就是基于Cortex-M3这个核生产的CPU. arm7是arm公司推出的以V4指令集设计出来的arm核--其代表的芯片有s3c44b0 arm9是arm公司推出的以V5指令集设计出来的a ...

  6. glup/grunt,browserify / webpack等的比较

    gulp/grunt的比较: Gulp / Grunt 是一种工具,能够优化前端工作流程.比如自动刷新页面.combo.压缩css.js.编译less等等.简单来说,就是使用Gulp/Grunt,然后 ...

  7. 局域网内补丁更新80072EE2错误

    在公网中,80072ee2通常是在进行自动更新时遇到的连接性错误.通常由于三防杀毒软件或者浏览器,代理服务器设置不正确而导致的.那么如果是在局域网中遇到该问题,该如何解决呢? 错误截图: 1.首先确认 ...

  8. Linux基础(4)

    Linux基础(四) 通过前面的知识的学习,来现学现卖咯! 1.题目:集群搭建 1.1.部署nginx反向代理三个web服务,调度算法使用加权轮询: 1.2.所有web服务使用共享存储nfs,保证所有 ...

  9. 用js+cookie实现商城的购物车功能

    页面上的添加功能主要就是两个按钮 <input name="buy" type="image" alt="第一个商品" src=&qu ...

  10. 【渗透测试】PHPCMS9.6.0 任意文件上传漏洞+修复方案

    这个漏洞是某司的一位前辈发出来的,这里只是复现一下而已. 原文地址:https://www.t00ls.net/thread-39226-1-1.html 首先我们本地搭建一个phpcms9.6.0的 ...