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 密钥容器.问题: ...
随机推荐
- java 钱币的单位转换
将钱转成转换为带指定单位的钱 int money = 10; NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US); System ...
- Android开发----权限大全
一.添加权限格式: 示例: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STOR ...
- 移动触摸事件(touchstart、touchmove和touchend)
touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touchmove事件:当手指在屏幕上滑动的时候连续地触发.在这个事件发生期间,调用preventDefaul ...
- git 教程 git.oschina.net
官方说明:http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#ssh-keys 安装完成后,在开始菜单里找到"Gi ...
- C++中new的用法
new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) new int(100);//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 ...
- SGU 249.Matrix(Gray码)
题意: 用0到2^(n+m-1)这2^(n+m-1)个数填在一个2^n*2^m的矩阵里,使得所有相邻的数的二进制表示只有一位不同. Solution: Gray码.对于第i行第j列的数,由i的Gray ...
- css3基础教程十六变形与动画animation
前面我们讲过的变形与动画一般都是通过鼠标的单击.获得焦点,被点击或对元素进行一定改变后以后触发效果的,那么有没有像Flash一样自动播放的动画效果呢?答案当然是肯定的,这就是我们今天要讲到的anima ...
- VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)
Public Class LinqToList 'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样 Dim listNew As List(Of Product) = ...
- spring mvc easyui tree 异步加载树
使用spring mvc 注解 异步加载一棵树 jsp: <ul id="orgInfoTree"></ul> $(function(){ loadOrgT ...
- Day8 面向对象(补充)
私有字段 class Foo: def __init__(self, name): self.__name = name def f1(self): print(self.__name) class ...