#region RSA
public static byte[] GetBytes(String num)
{
BigInteger n = new BigInteger(num, );
String s = n.ToString();
if (s.Length % > )
{
s = new String('', - s.Length % ) + s;
}
byte[] data = new byte[s.Length / ];
String ocetstr;
for (int i = ; i < data.Length; i++)
{
ocetstr = s.Substring( * i, );
data[i] = Convert.ToByte(ocetstr, );
}
return data;
} /// <summary>
/// 字节数组转16进制字符串
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static String ConvByteArrayToHex(byte[] data)
{
String s = "";
for (int i = ; i < data.Length; i++)
{
s += Convert.ToString(data[i], );
}
return s.ToUpper();
}
public static string RSAEncrypt(string Modulus, string Exponent, string content)
{
var param = new RSAParameters();
param.Exponent = GetBytes(Exponent);
param.Modulus = GetBytes(Modulus);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(param); int CellLength = new BigInteger(param.Modulus).bitCount() / ; byte[] bInput = Encoding.UTF8.GetBytes(content); int MaxLength = CellLength - ;
int GroupLength = (int)Math.Ceiling(bInput.Length * 1.00 / MaxLength); byte[] cipherText = new byte[GroupLength * CellLength];
for (int i = ; i < GroupLength; i++)
{
int len = MaxLength < bInput.Length - MaxLength * i ? MaxLength
: bInput.Length - MaxLength * i;
byte[] inByte = new byte[len];
Buffer.BlockCopy(bInput, MaxLength * i, inByte, , len); byte[] temp = rsa.Encrypt(inByte, false);
Buffer.BlockCopy(temp, , cipherText, i * CellLength, CellLength);
}
//cipherText = rsa.Encrypt(bInput, false);
//return Convert.ToBase64String(cipherText);
//return toHex(cipherText);
return BitConverter.ToString(cipherText).Replace("-", ""); } #endregion

RSA 加解密的更多相关文章

  1. Rsa加解密Java、C#、php通用代码 密钥转换工具

    之前发了一篇"TripleDes的加解密Java.C#.php通用代码",后面又有项目用到了Rsa加解密,还是在不同系统之间进行交互,Rsa在不同语言的密钥格式不一样,所以过程中主 ...

  2. 【go语言】RSA加解密

    关于go语言的RSA加解密的介绍,这里有一篇文章,已经介绍的很完整了. 对应的go语言的加解密代码,参考git. 因为原文跨语言是跟php,我这里要跟c语言进行交互,所以,这里贴上c语言的例子. 参考 ...

  3. java RSA加解密以及用途

    在公司当前版本的中间件通信框架中,为了防止非授权第三方和到期客户端的连接,我们通过AES和RSA两种方式的加解密策略进行认证.对于非对称RSA加解密,因为其性能耗费较大,一般仅用于认证连接,不会用于每 ...

  4. openssl - rsa加解密例程

    原文链接: http://www.cnblogs.com/cswuyg/p/3187462.html openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加 ...

  5. RSA加解密工具类RSAUtils.java,实现公钥加密私钥解密和私钥解密公钥解密

    package com.geostar.gfstack.cas.util; import org.apache.commons.codec.binary.Base64; import javax.cr ...

  6. PHP RSA加解密详解(附代码)

    前言:RSA加密一般用在涉及到重要数据时所使用的加密算法,比如用户的账户密码传输,订单的相关数据传输等. 加密方式说明:公钥加密,私钥解密.也可以  私钥加密,公钥解密 一.RSA简介 RSA公钥加密 ...

  7. RSA算法原理——(3)RSA加解密过程及公式论证

    上期(RSA简介及基础数论知识)为大家介绍了:互质.欧拉函数.欧拉定理.模反元素 这四个数论的知识点,而这四个知识点是理解RSA加密算法的基石,忘了的同学可以快速的回顾一遍. 一.目前常见加密算法简介 ...

  8. 与非java语言使用RSA加解密遇到的问题:algid parse error, not a sequence

    遇到的问题 在一个与Ruby语言对接的项目中,决定使用RSA算法来作为数据传输的加密与签名算法.但是,在使用Ruby生成后给我的私钥时,却发生了异常:IOException: algid parse ...

  9. JavaScript实现RSA加解密

    在GitHub上找到jsencrypt.js对RSA加解密的工具文件,地址分别是:https://github.com/travist/jsencrypt和https://github.com/ope ...

  10. RSA加解密算法以及密钥格式

    RSA算法: 有个文章关于RSA原理讲的不错: https://blog.csdn.net/dbs1215/article/details/48953589 http://www.ruanyifeng ...

随机推荐

  1. Android ViewPager 应该及技巧

    1.   android 中的ViewPager 功能类似于iOS中的scrollView,实现最主要的页面的左右滑动功能.该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中 ...

  2. C Primer

    如果主函数使用void main(),由于它不是当前标准强制的一个选项,因此在有些系统上不能工作,为了使代码变得简单,main函数中可以没有返回语句. 先声明变量是为了防止拼写错误导致定义一个新的变量

  3. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 7.全局防护盲点的总结上篇

    0x01 背景 现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义.但仅仅使用这样的防护是存在很多盲点的,比如最经典的整型参数传递, ...

  4. 关于测试Windows电脑端口的命令 —— telnet用法

    telnet服务在win7默认是打开的,如果没有打开要在电脑中打开. 命令格式:telnet ip port 例如:telnet 127.0.0.1 80 或者 telnet www.XXX.com ...

  5. Web安全 之 SQL注入

    随着B/S模式应用开发的发展,使用这种模式编写的应用程序也越来越多.相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据 ...

  6. UIWebView获得内容的高 高度自适应 宽度自适应

    UIWebView获得内容的高-作出自适应高的UIWebView- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *height ...

  7. ASP.NET MVC ViewData/ViewBag 简单小结

    近期在项目中遇到一个问题,就是用ViewBag.Model存储匿名对象传递给View,但是需要根据条件给匿名对象添加属性,这个可真心不易,Google了一下发现很多方案都是动态编译神马的,感觉好高大上 ...

  8. mysql_DML_delete

    delete from 表名   删除表里的数据 可以配合where试用

  9. eclipse bookmark的使用

    为什么要使用bookmark 写代码一般不是从上往下写,经常在几个模块之间变换的写,你可能使用搜索功能ctrl+f,ctrl+c,这样查找位置将会变的非常痛苦. 因为重要的位置一般就那么几个,如定义部 ...

  10. 【原】 twemproxy ketama一致性hash分析

    转贴请注明原帖位置:http://www.cnblogs.com/basecn/p/4288456.html 测试Twemproxy集群,双主双活 向twemproxy集群做写操作时,发现key的分布 ...