C# RAS 非对称加密类 支持长字符串
/// <summary>
/// ikmb@163.com
/// </summary>
public class MyRAS
{
/// <summary>
/// RAS加密
/// </summary>
/// <param name="xmlPublicKey">公钥</param>
/// <param name="EncryptString">明文</param>
/// <returns>密文</returns> public static string RSAEncrypt(string xmlPublicKey, string EncryptString)
{
byte[] PlainTextBArray;
byte[] CypherTextBArray;
string Result=String.Empty;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPublicKey);
int t = (int)(Math.Ceiling((double)EncryptString.Length / (double)));
//分割明文
for (int i = ; i <= t-; i++)
{ PlainTextBArray = (new UnicodeEncoding()).GetBytes(EncryptString.Substring(i * , EncryptString.Length - (i * ) > ? : EncryptString.Length - (i * )));
CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
Result += Convert.ToBase64String(CypherTextBArray) + "ThisIsSplit";
}
return Result;
}
/// <summary>
/// RAS解密
/// </summary>
/// <param name="xmlPrivateKey">私钥</param>
/// <param name="DecryptString">密文</param>
/// <returns>明文</returns>
public static string RSADecrypt(string xmlPrivateKey, string DecryptString)
{
byte[] PlainTextBArray;
byte[] DypherTextBArray;
string Result=String.Empty;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPrivateKey);
string[] Split = new string[];
Split[] = "ThisIsSplit";
//分割密文
string[] mis = DecryptString.Split(Split, StringSplitOptions.RemoveEmptyEntries);
for (int i = ; i < mis.Length; i++)
{
PlainTextBArray = Convert.FromBase64String(mis[i]);
DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
Result += (new UnicodeEncoding()).GetString(DypherTextBArray);
}
return Result;
} /// <summary>
/// 产生公钥和私钥对
/// </summary>
/// <returns>string[] 0:私钥;1:公钥</returns>
public static string[] RSAKey()
{
string[] keys = new string[];
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
keys[] = rsa.ToXmlString(true);
keys[] = rsa.ToXmlString(false);
return keys;
}
}
C# RAS 非对称加密类 支持长字符串的更多相关文章
- RAS非对称加密
加解密密钥不一致,一般私钥不公开,使用公钥加密,私钥解密,使用私钥加密,公钥可以解密. java代码 import javax.crypto.Cipher; import java.security. ...
- RAS非对称加密与数字证书数字签名
它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么. 我对这些问题的 ...
- eclipse处理长字符串拼接快捷方法类
情景: 你在后台写sql文访问数据库时是不是要这样写 String sql="select a," +"b," +"c " +"f ...
- Asp.Net 常用工具类之加密——非对称加密RSA算法
踏入程序员这个行业也有几年了,几年中有收获(技术加强),有付出(时间和亚健康状态).当然喏,并不后悔,代码路还长!!! On The Way,永不止步!!! 开发过程中也积累了一些自己的经验.代码块和 ...
- php RAS加密类代码
通过openssl实现的签名.验签.非对称加解密,需要配合x.509证书(如crt和pem)文件使用. <?php /** * RSA算法类 * 签名及密文编码:base64字符串/十六进制字符 ...
- Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)
系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...
- RSA 加密 解密 (长字符串) JAVA JS版本加解密
系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- 加密webconfig中的连接字符串,利用RSA非对称加密,利用windows保存密钥容器
简单的解决方法: WebConfig 加解密,未能使用提供程序“RsaProtectedConfigurationProvider”进行解密.提供程序返回错误消息为: 打不开 RSA 密钥容器.问题: ...
随机推荐
- WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter
注: 需要继承IMultiValueConverter接口,接口使用和IValueConverter逻辑相同. 一.MultiBinding+Converter 多值绑定及多值转换实例 当纵向流量大于 ...
- 学习java随笔第一篇:搭建java平台(java se)
电脑系统:windows8 在这里介绍一下java平台的3个版本: Java SE--Java Standard Edition,Java的标准版,主要用于桌面级的应用和数据库开发. Java EE- ...
- mysql 安装-编码
mysql的安装过程相对较为简单,在这里就不阐述,我想说的问题是,关于编码的安装, 在安装到达'Please select the default character set'的时候,选择'Manul ...
- 游标中的static参数
以下测试用例将演示,使用static的游标和不使用的区别: if object_id(N't_test',N'u') is not null drop table t_test go create t ...
- RESTful互联网框架
在我们日常接触的网络中,对于非程序员来说主要关注的就是在网上找到自己需要的资料,但是对于开发者来说,主要关注的就是将结构和页面,以及功能的分离,但是如何划分这个结构呢,或许我们知道的有MVC框架,甚至 ...
- 几种不同存储形式下的数据挖掘问题[ZZ]
从原理上说,数据挖掘应该可以应用到任何信息存储方式的知识挖掘中,但是挖掘的挑战性和技术会因为源数据的存储类型的不同而不同.特别是,近年来的研究表明数据挖掘所涉及的数据存储类型越来越丰富,除了一些有通用 ...
- 51nod建设国家
小C现在想建设一个国家.这个国家中有一个首都,然后有若干个中间站,还有若干个城市. 现在小C想把国家建造成这样的形状:选若干(可以是0个)的中间站把他们连成一条直线,然后把首都连在这一条直线的左端.然 ...
- C# .NET3.5 改为 到.NET2.0 时 TypedTableBase 报错解决方法
NET 3.5 降版本 到.NET 2.0.不出意外,问题必然来了.编译错误一:错误 1 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?)解决:删掉该引用--没用 ...
- 谈谈android 布局 的优化
来自:http://www.cnblogs.com/youxilua/archive/2012/05/08/2489414.html 导言 设配android的屏幕一定是一个噩梦,就好比那些搞网页设计 ...
- CSS Hack技术详解,支持IE 6-11、Chrome、FireFox、Safari、Opera 6-11、Chrome、FireFox、Safari、Opera6-11、Chrome、FireFox、Safari、Opera6-11、Chrome、FireFox、Safari、Opera
转自: http://www.365mini.com/page/css-hack-ie-chrome-firefox-safari-opera.htm 当前网络时代,各种各样的网页向我们展示着丰富多彩 ...