使用MD5WithRSA来签名和验签(.NET)

 1         /// <summary>
 2         /// 数字签名并返回BASE64编码的字符串
 3         /// </summary>
 4         /// <param name="contentForSign">待签名内容</param>
 5         /// <param name="privateKeyFile">私钥文件路径</param>
 6         /// <returns></returns>
 7         internal static string Sign(string contentForSign, string privateKeyFile)
 8         {
 9             var rsa = CcbRsaCryptProvider.GetInstanceForSign(privateKeyFile);
10             var signData = rsa.SignData(Encoding.UTF8.GetBytes(contentForSign), new MD5CryptoServiceProvider());
11             return Convert.ToBase64String(signData);
12         }
13
14         /// <summary>
15         /// 验证签名
16         /// </summary>
17         /// <param name="contentForSign">待签名内容</param>
18         /// <param name="signedData">签名内容</param>
19         /// <param name="publicKeyFile">公钥文件路径</param>
20         /// <returns>验证结果</returns>
21         internal static bool VerifySign(string contentForSign, string signedData, string publicKeyFile)
22         {
23             var rsaPub = CcbRsaCryptProvider.GetInstanceForVerifySign(publicKeyFile);
24             return rsaPub.VerifyData(Encoding.UTF8.GetBytes(contentForSign), new MD5CryptoServiceProvider(), Convert.FromBase64String(signedData));
25         }
时间: 2024-10-30 03:24:55

使用MD5WithRSA来签名和验签(.NET)的相关文章

RSA加密、解密、签名、验签 DSA签名、验签

重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 下

RSA后台签名前台验签的应用(前台采用jsrsasign库)

写在前面 安全测试需要, 为防止后台响应数据返给前台过程中被篡改前台再拿被篡改后的数据进行接下来的操作影响正常业务, 决定采用RSA对响应数据进行签名和验签, 于是有了这篇<RSA后台签名前台验签的应用>. 我这里所谓的返给前台的数据只是想加密用户验证通过与否的字段success是true还是false, 前台拿这个success作为判断依据进行下一步的操作, 是进一步向后台发起请求还是直接弹出错误消息.照测试结果看这是个逻辑漏洞, 即使后台返回的是false, 在返回前台的过程中响应包被劫获

使用RSA、MD5对参数生成签名与验签

在日常的工作中,我们对外提供的接口或调用三方的接口往往有一步生成签名或验签的步骤,这个步骤主要是验证调用方是 不是合法的以及内容是否被修改.比如:对于某些网上公开下载的软件,视频,尤其是镜像文件.如果被修改了可能会导致用不了 或者其他的问题,发布者镜像MD5算法计算一组数值.让下载的用户进行MD5数值对比,也就是MD5校验啦.由于MD5加密不可逆算, 如果数值一样,那就表示文件没有被修改的.反之,则被修改了. 接下来通过文字介绍.代码.运行结果的方式给大家介绍RSA.MD5生成签名和验签: 一.

.NET RSA解密、签名、验签

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; namespace API.Tools { /// <summary> /// 类名:RSAFromPkcs8 /// 功能:RSA解密.签名.验签 /

NodeJs支付宝移动支付签名及验签

非常感谢 :http://www.jianshu.com/p/8513e995ff3a?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weibo 的文章,如果不是找到这篇文章我可能还要继续坑几天,代码也基本都是照着他的搬过来的,不过支付宝移动支付文档写的非常糟糕而且没有node的SDK和demo,写起来异常痛苦..好在找到了这篇文章顺便折腾了一下午支付宝的技术人员总算把移动支付整个流程给做

java签名与验签

基本概念: 加密解密 加密:发送方利用接收方的公钥对要发送的明文进行加密. 解密:接收方利用自己的私钥进行解密. 公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密.当然也可以反过来,用私钥加密,用对应的公钥进行解密. 签名验签 签名:发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,得到的就是这个报文对应的数字签名. 通常来说,发送方会把数字签名和报文原文一并发送给接受者. 验签:接收方得到原始报文和数字签名后,用同一个哈希函数从报文中生成摘要A,另

pfx,cer转pem,并对通过pem文件进行签名与验签

encry.php文件 1 <?php 2 3 define("filePath","D:\\digitalCertificate\\"); 4 define("pfxFileName","jsc.pfx"); 5 define("password","jsb"); 6 7 /*实现.pfx文件转为.pem文件*/ 8 $file = filePath.pfxFileName; 9

关于rsa非对称加密、解密、签名、验签

测试数据: 1 var xmlprikey =""; 2 var xmlpubkey =""; 3 rsa = new RSACryption(); 4 //待处理字符串 5 var str="hello成功啊啊!¥%……&*([email protected]#$%^&*()@#$%^&*()_}::{>>?}{>?{?"; 6 var strlen= str.Length; 7 rsa.RSAKey(

java rsa 签名,验签

package com.fabiao; import java.security.KeyFactory;import java.security.MessageDigest;import java.security.PrivateKey;import java.security.PublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec; import o