RSA加密遇到的一些问题,求指点,谢谢

问题描述

最近接触一个需求如下:发送的数据用私钥签名,接收方用公钥验证。看到网上很多帖子,很多实现。发现以下疑问:疑问1.两种方式的MD5哈希算法,算出来的byte[]值不一致,其中方式2是md5的hash算法。方式1也应该是md5吧。为什么不一致呢。方式1:publicstringGetHash(stringm_strSource){UTF8Encodingenc=newUTF8Encoding();HashAlgorithmalgorithm=HashAlgorithm.Create("MD5");byte[]bytes=enc.GetBytes(m_strSource);byte[]inArray=algorithm.ComputeHash(bytes);returninArray;}方式2:stringcontent;//要hash的内容stringreturnValue;//hash后的值MD5CryptoServiceProvidermd5_Model=newMD5CryptoServiceProvider();byte[]s=md5_Model.ComputeHash(Encoding.UTF8.GetBytes(content));md5_Model.Clear();//通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得for(inti=0;i<s.Length;i++){//将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符returnValue+=Convert.ToString(s[i],16).PadLeft(2,'0');}疑问2:签名我看网上主要集中在两种实现方式上,方式1和方式2有啥区别呢,方式1:调用RSACryptoServiceProvider实例的signdata方法RSACryptoServiceProvideroRSA3=newRSACryptoServiceProvider();oRSA3.SignData(messagebytes,"MD5");方式2:///<summary>///对MD5加密后的密文进行签名///</summary>///<paramname="p_strKeyPrivate">私钥</param>///<paramname="m_strHashbyteSignature">MD5加密后的密文</param>///<returns></returns>publicstringSignatureFormatter(stringp_strKeyPrivate,stringm_strHashbyteSignature){byte[]rgbHash=Convert.FromBase64String(m_strHashbyteSignature);RSACryptoServiceProviderkey=newRSACryptoServiceProvider();key.FromXmlString(p_strKeyPrivate);RSAPKCS1SignatureFormatterformatter=newRSAPKCS1SignatureFormatter(key);formatter.SetHashAlgorithm("MD5");byte[]inArray=formatter.CreateSignature(rgbHash);returnConvert.ToBase64String(inArray);}

解决方案

时间: 2024-09-08 14:46:28

RSA加密遇到的一些问题,求指点,谢谢的相关文章

关于3DES加密,直接上代码求指点

问题描述 关于3DES加密,直接上代码求指点 public static byte[] encryptMode(byte[] keybyte, byte[] src){ try { // SecretKey deskey = new SecretKeySpec(keybyte, Algorithm);; String deskey = "abcdabcd"; Cipher c1 = Cipher.getInstance(Algorithm); c1.init(Cipher.ENCRYP

javascript-初学者, 不知道哪里错了 求指点 谢谢 不怕嘲笑 不怕讽刺 只求进步

问题描述 初学者, 不知道哪里错了 求指点 谢谢 不怕嘲笑 不怕讽刺 只求进步 <br> var i = 2;</p><pre><code> while ( i<101) { var arr=[]; for (var a = 2; a < =i;a++) { if (i%a==0) { arr.push(0); } } if (arr.length==1) { document.write(i); } document.write("&

c语言-C语言完数问题,新手求指点~谢谢

问题描述 C语言完数问题,新手求指点~谢谢 C语言课后习题,求1000以内的完数,按以下格式输出: 6 its factors are 1,2,3 为什么我改成和答案一样的都输出空., 代码如下:#include int main() { int m,i,s; for(m=2;m<1000;m++)//2-1000个数 { s=0; for(i=1;i<=m;i++) if((m%i)==0)s=s+i; if(s==m) { printf("%d,its factors are&q

遍历-求用C语言实现下面问题 新手求指点~谢谢~

问题描述 求用C语言实现下面问题 新手求指点~谢谢~ 假设图中数据元素类型是字符型,请采用邻接矩阵或邻接表实现图的以下基本操作: (1)构造图(包括有向图.有向网.无向图.无向网): (2)根据深度和广度优先遍历图. 解决方案 包括有向图.有向网.无向图.无向网,根据深度和广度优先遍历图.http://blog.csdn.net/creazyapple/article/details/7949064http://blog.csdn.net/lwwworkspace/article/details

测试-本想牛刀小试没想到刀被砍卷刃了 一道小题 新手求指点 谢谢了

问题描述 本想牛刀小试没想到刀被砍卷刃了 一道小题 新手求指点 谢谢了 输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示. 输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理. Output 对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数

求帮助!ios用RSA加密和解密!在线等

问题描述 求帮助!ios用RSA加密和解密!在线等 用 oc 实现RSA 加密和解密 在线等 谢谢 解决方案 参考:http://blog.163.com/l1_jun/blog/static/1438638820127292147316/ 解决方案二: 公钥和私钥都是服务端生成好的.直接复制过来的 求个大神啊 解决方案三: 理论上服务端只会给你公钥,私钥,服务端要自己保留. 你只能用公钥加密,或者解密. 如果oc支持不够好,那么就可能要利用c来做.rsa 解决方案四: 现在公司的意思 是 我发

mysql分类加密问题,求指点

问题描述 mysql分类加密问题,求指点 mysql数据库有TDE功能可以进行整体加密,现在假设我有一个数据表,表中有列属性值为a,b,c,d:那么我该如何实现根据这个属性值进行分类加密? 例如表中有3行数据在该属性下的值为a,另外有4行数据在该属性下的值为b,我怎么样才能用不同的密钥加密这两类数据呢? 希望哪位大神能给我讲讲...谢谢 解决方案 https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html UPDATE T1

我想做一个android手机的登陆界面,求指点

问题描述 我想做一个android手机的登陆界面,求指点 服务器是别人做好的.现在想做个登陆界面,但是没有做过,不知道该看什么资料,从哪里着手,请大神指点(如果可以,详细点最好). 解决方案 1.布局设计 2.使用sharedpreferences进行存储账号密码.http://blog.csdn.net/wulianghuan/article/details/8501063 3.将账号密码发送到服务器进行验证.http://blog.csdn.net/guolin_blog/article/d

rsa-RSA加密报错,哪位遇到过类似问题~跪求指点

问题描述 RSA加密报错,哪位遇到过类似问题~跪求指点 import java.security.Key; import java.util.HashMap; import java.util.Map; import javax.crypto.Cipher; import sun.misc.BASE64Decoder; public String decrypt(){ Map keyMap= new HashMap(4); String decryptModeCode = null; Ciphe

ios-关于IOS的RSA加密问题

问题描述 关于IOS的RSA加密问题 由于公钥是服务器传下来的NSString类型,由于一些原因,不能使用证书加密,不能使用openssl库进行加密,要怎么加密好???急求,找了好久了,也看到有一些提问的,解决方法都不行... 最好有代码可以看... 解决方案 你要看RSA加密的话可以看看支付宝的SDK. 那里面有详细的例子.