资源简介
// 加载公钥
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
相关资源
- ASP.NET微信开发包括图文上传菜单上传
- C# 7.0 in a Nutshell The Definitive Reference 无
- C# 5.0 in a Nutshell(5th) 无水印pdf
- 在线考试系统C#
- C#界面设计教程
- C#Windows窗口人事管理系统
- C#实现的简单在线考试系统功能齐全
- 校园一卡通管理系统
- 旅游管理系统代码+设计文档
- 考勤系统 C#+SqlServer
- C#调用Godex(科诚)打印机打印1,2维
- c# 固定资产源码,支持sql ,access,完
- c#程序设计(清晰版)
- C#生成与求解数独
- C#图书管理系统三层架构
- 成语接龙C#代码以前写的,暂时放这里
- C#超级通信调试工具源码20130916
- c# 开源搜索引擎完整的
- 用C#编写的个人理财管理系统
- C#学生成绩管理系统260085
- c#图书管理系统C#源码和SQL数据库
- C# NPOI_2.3.0版插件
- html和c#交互小
- 使用WPF+MVVMlight编写的Socket服务器/多客
- SiriusCoder C#代码生成器
- 留言板 留言板 sql c# vs 留言板 sql c#
- C#.net宠物商店管理系统带数据库完整
- C# .resources资源文件编辑和对比工具
- C# - DynamicDataDisplay.dll图表绘制(内含
- ASP.NET开发供求信息网
评论
共有 条评论