RSA 非对称加密与解密
来源:互联网 发布:网络推广竞价包年 编辑:程序博客网 时间:2024/05/22 09:39
private static string Encrypt(string msg, string publickey)
{
ASCIIEncoding enc = new ASCIIEncoding();
byte[] bytes = enc.GetBytes(msg);
int blockSize = 0;
RSACryptoServiceProvider crypt = new RSACryptoServiceProvider();
crypt.FromXmlString(publickey);
if (crypt.KeySize == 1024)
blockSize = 16;
else
blockSize = 8;
MemoryStream ms = new MemoryStream();
byte[] rawblock, encryblock;
for (int i = 0; i < bytes.Length; i += blockSize)
{
if ((bytes.Length - i) > blockSize)
rawblock = new byte[blockSize];
else
rawblock = new byte[bytes.Length - i];
Buffer.BlockCopy(bytes, i, rawblock, 0, rawblock.Length);
encryblock = crypt.Encrypt(rawblock, false);
ms.Write(encryblock, 0, encryblock.Length);
}
ms.Position = 0;
byte[] decode = new byte[ms.Length];
ms.Read(decode, 0, (int)ms.Length);
string decodeinfo = Convert.ToBase64String(decode);
ms.Close();
return decodeinfo;
}
private static string Decrypt(string msg, string privatekey)
{
RSACryptoServiceProvider crypt = new RSACryptoServiceProvider();
crypt.FromXmlString(privatekey);
ASCIIEncoding enc = new ASCIIEncoding();
byte[] bytes = Convert.FromBase64String(msg);
MemoryStream ms = new MemoryStream();
int keySize = crypt.KeySize / 8;
byte[] rawblock, decryptblock;
for (int i = 0; i < bytes.Length; i += keySize)
{
if ((bytes.Length - i) > keySize)
{
rawblock = new byte[keySize];
}
else
{ rawblock = new byte[bytes.Length - i]; }
Buffer.BlockCopy(bytes, i, rawblock, 0, rawblock.Length);
decryptblock = crypt.Decrypt(rawblock, false);
ms.Write(decryptblock, 0, decryptblock.Length);
}
ms.Position = 0;
byte[] decode = new byte[ms.Length];
ms.Read(decode, 0, (int)ms.Length);
string text = enc.GetString(decode);
ms.Close();
return text;
}
- RSA 非对称加密与解密
- Java对称与非对称加密解密,AES与RSA
- Java对称与非对称加密解密,AES与RSA
- Java对称与非对称加密解密,AES与RSA
- RSA非对称加密解密
- RSA非对称加密解密
- 非对称RSA加密解密
- RSA加密、解密、签名(非对称加密)
- 漫谈iOS RSA非对称加密与解密
- 漫谈iOS RSA非对称加密与解密
- RSA非对称加密和解密方法
- RSA非对称加密解密例子
- Android RSA非对称加密解密算法
- Android: AndroidKeyStore 非对称RSA加密解密
- php rsa加密解密实例(非对称加密)
- android RSA加密 解密 非对称可逆加密
- 非对称加密(RSA)与对称加密(AES)的应用
- 对称加密与非对称加密,以及RSA的原理
- 使用 Nginx 提升网站访问速度
- Service部署到服务器后出现"The test form is only available for requests from the local machine"解决方法
- 演说时代之艺术创造始于初心
- JavaScript为事件处理器传递参数
- window.open()的参数列表及示例代码
- RSA 非对称加密与解密
- 编译你自己的Linux内核(Kernel)
- MySql配置(网易的)
- AS3.0基础学习笔记(2): 对象
- 在textarea光标指定地方插入内容
- DEV控件:gridControl常用属性设置
- 当使用 Windows Server 2003 中添加或删除程序 " 消息收到 " 无法加载安装库 wbemupgd.dll " 错误
- 实用的SQL函数(用于将符合条件的某列所有记录合成一行)
- 如何做需求分析(一)概述