资源简介
// 加载公钥
RsaKeyParameters pubkey;
using (var sr = new StreamReader(ConfigurationManager.AppSettings["PubKey"]))
{
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(sr);
pubkey = (RsaKeyParameters)pemReader.ReadObject();
}
// 初始化cipher
var cipher = (BufferedAsymmetricBlockCipher)CipherUtilities.GetCipher("RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING");
cipher.Init(true, pubkey);
// 加密message
var message = Encoding.UTF8.GetBytes(EncryptString);
var output = EncryptUtil.Encrypt(message, cipher);
R = Convert.ToBase64String(output);
代码片段和文件信息
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Security;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
public class Account
{
///
/// 订单确认消费之后平台打钱到商家银行卡
///
///
public void OrderConfirm(int ID)
{
PayToUser pay = PayOrderUtil.GetPayToUser();
try
{
/*加密银行卡号和用户姓名*/
pay.enc_bank_no = RSAEncrypt(pay.enc_bank_no);
pay.enc_true_name = RSAEncrypt(pay.enc_true_name);
PayToUser(pay);
}
catch (Exception ex)
{
//Log4Helper.LogInfo(“PayLogger“ ex.Message ex);
}
}
public string GetPublicKey()
{
SortedDictionaryject> di = new SortedDictionaryject>();
di.Add(“mch_id“ Config.merchant_no);
di.Add(“nonce_str“ WeChatUtil.getNoncestr());
di.Add(“sign_type“ “MD5“);
di.Add(“sign“ WeChatUtil.CreateSign(di Config.pay_secret));
var data = WeChatUtil.WeChatSignxml(di);
string result = WeChatUtil.WxCerHttpPost(“https://fraud.mch.weixin.qq.com/risk/getpublickey“ data Config.WeChatCre Config.merchant_no);
if (!string.IsNullOrWhiteSpace(result))
{
//Log4Helper.LogInfo(“PayLogger“ result);
var returnxml = xmlUtil.xmlToObect(result);
if (returnxml.return_code == “SUCCESS“)
{
if (returnxml.result_code == “SUCCESS“)
{
return returnxml.pub_key;
}
}
}
return ““;
}
public string RSAEncrypt(string EncryptString)
{
if (!File.Exists(Config.PubKey))
{
var PublicKey = GetPublicKey();
if (!string.IsNullOrWhiteSpace(PublicKey))
{
File.WriteAllText(Config.PubKey PublicKey);
}
else
return “获取公钥失败!“;
}
string R;
// 加载公钥
RsaKeyParameters pubkey;
using (var sr = new StreamReader(Config.PubKey))
{
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(sr);
pubkey = (RsaKeyParameters)pemReader.Readobject();
}
// 初始化cipher
var cipher = (BufferedAsymmetricBlockCipher)CipherUtilities.GetCipher(“RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING“);
cipher.Init(true pubkey);
// 加密message
var message = Encoding.UTF8.GetBytes(EncryptString);
var output = EncryptUtil.Encrypt(message cipher);
R = Convert.Tobase64String(output);
return R;
}
private static void PayToUser(PayToUser pay)
{
/*1.生成签名*/
SortedDictionaryject> dics = new SortedDictionaryject>();
dics.Add(“mch_id
相关资源
- C# TIP文件生成和拆解
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
评论
共有 条评论