有没有知道怎样用C语言来写RSA加密算法的代码的???谢谢

如题所述

第1个回答  2012-12-28
#region RSA的加密函数 //##############################################################################
//RSA 方式加密
//说明KEY必须是XML的行式,返回的是字符串
//在有一点需要说明!!该加密方式有 长度 限制的!!
//##############################################################################

//RSA的加密函数 string public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)
{

byte[] PlainTextBArray; byte[] CypherTextBArray;
string Result;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPublicKey);
PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString);
CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
Result = Convert.ToBase64String(CypherTextBArray);
return Result;

} //RSA的加密函数 byte[]
public string RSAEncrypt(string xmlPublicKey, byte[] EncryptString)
{

byte[] CypherTextBArray; string Result;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPublicKey);
CypherTextBArray = rsa.Encrypt(EncryptString, false);
Result = Convert.ToBase64String(CypherTextBArray);
return Result;

} #endregion
#region RSA的解密函数 //RSA的解密函数 string
public string RSADecrypt(string xmlPrivateKey, string m_strDecryptString)
{
byte[] PlainTextBArray;
byte[] DypherTextBArray;
string Result;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPrivateKey);
PlainTextBArray = Convert.FromBase64String(m_strDecryptString);
DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
return Result;

}
//RSA的解密函数 byte public string RSADecrypt(string xmlPrivateKey, byte[] DecryptString)
{
byte[] DypherTextBArray;
string Result;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPrivateKey);
DypherTextBArray = rsa.Decrypt(DecryptString, false);
Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
return Result;

} #endregion
#endregion

求RSA密码的C语言实现算法的源程序(可通过运行)(1024位的)
加密的时候,输入Y,然后输入要加密的文本(大写字母)解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。\/*RSA algorithm *\/ include <stdio.h> include <string.h> include <stdlib.h> define MM 7081 define KK 1789 define PHIM 6912 define PP 85 typ...

求正确的RSA加密解密算法C语言的,多谢。
一、RSA算法:首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数p,q,r这三个数便是privatekey接著,找出m,使得rm==1mod(p-1)(q-1)这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了再来,计算n=pqm,n这两个数便是publickey编码过程是,若资料为a,将...

如何用C语言实现RSA算法
One-Way HashFunction 对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。五、RSA的公共模数攻击若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文...

做一个RSA的算法,C语言实现的~!编程高手进啊~!救命啊~!
看你催就仓促写了个,自我感觉写的不是很好,但是能用了。数据只能是大写字母组成的字符串。加密的时候,输入Y,然后输入要加密的文本(大写字母)解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。\/*RSA algorithm *\/ include <stdio.h> include <string.h...

如何用C语言来使用openssl rsa进行公钥加密,已有公钥和明文
RSA *p_rsa = NULL;FILE *file = NULL;int lenth = 0; \/\/flen为源文件长度, rsa_len为秘钥长度 \/\/1.打开秘钥文件 if((file = fopen(path_key, "rb")) == NULL){ perror("fopen() error 111111111 ");goto End;} \/\/2.从公钥中获取 加密的秘钥 if((p_rsa = PEM_read_R...

rsa算法的d值怎么计算
根据RSA原理,求d的值,可以使用以下C语言代码:int d = 1; while((e*d)%t!=1) d++;当然了,前提是已经求出了e的值和t的值!因为新学的RSA算法,也遇到了这个问题,而搜索百度,排前的搜索结果是这个没有解决的,所以写点心得,希望对像我这样新学RSA算法的朋友有些帮助!

c 语言常用的加密算法——MD5
RSA加密算法为非对称加密算法,使用两把不同的密钥进行加密与解密,是最成熟且常用的非对称加密算法。同样使用OpenSSL库在C语言中实现RSA加密。MD5算法作为加密散列函数,产生128位散列值,广泛应用于C语言中。通过OpenSSL库实现MD5加密。SHA-1算法全称为Secure Hash Algorithm 1,用于数字签名、验证、消息摘要...

RSA的详细解法,已知,p=19,q=31,d取529,求e的具体过程
.和用公开密钥(e,n)来破解秘密密钥(d,n)的计算量相比不是一个档次的 实际运用中肯定是用计算机来算同余方程的...C语言代码如下 include<stdio.h> main(){ int e;for(e=2;e<=539;e++) \/\/Φ(n)=540 { if((529*e)%540==1) \/\/d=529 printf("%d\\n",e);} } 算出来 e=49 ...

c语言 RSA 大数运算
c语言中使用long和int型来表示整数,但它们的表示范围有限。例如,int型在32位系统上通常能表示-2147483648到2147483647之间的整数。而long型则在64位系统上通常能表示-9223372036854775808到9223372036854775807之间的整数。如果你尝试在int型变量中存储一个10位数,它将无法正确表示。同样,尝试在long型变量中...

c语言getprime是什么意思
然后通过RSA加密,得到密文,RSA中表示为C。加密过程 c=m^e mod n c=pow(m,e,n)1 解密过程 m=c^d mod n m=pow(c,d,n)1 求解私钥d d = gmpy2.invert(e, (p-1)*(q-1))1 一般来说࿰文章知识点与官方知识档案匹配 算法技能树首页概览 30677 人正在系统学习中 ...

相似回答