资源简介
(附上说明文档,让大家快速通过回调验证)用C#写的,网上找了很多但是都无法直接使用,也有部分遗漏,正好自己优化一个分享给大家。例子是把用户发送的消息回复给用户,下载后只需在web.config配置好相应的参数,即可发布使用。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using System.Net;
namespace Tencent
{
class Cryptography
{
public static UInt32 HostToNetworkOrder(UInt32 inval)
{
UInt32 outval = 0;
for (int i = 0; i < 4; i++)
outval = (outval << 8) + ((inval >> (i * 8)) & 255);
return outval;
}
public static Int32 HostToNetworkOrder(Int32 inval)
{
Int32 outval = 0;
for (int i = 0; i < 4; i++)
outval = (outval << 8) + ((inval >> (i * 8)) & 255);
return outval;
}
///
/// 解密方法
///
/// 密文
///
///
///
public static string AES_decrypt(String Input string EncodingAESKey ref string corpid)
{
byte[] Key;
Key = Convert.Frombase64String(EncodingAESKey + “=“);
byte[] Iv = new byte[16];
Array.Copy(Key Iv 16);
byte[] btmpMsg = AES_decrypt(Input Iv Key);
int len = BitConverter.ToInt32(btmpMsg 16);
len = IPAddress.NetworkToHostOrder(len);
byte[] bMsg = new byte[len];
byte[] bCorpid = new byte[btmpMsg.Length - 20 - len];
Array.Copy(btmpMsg 20 bMsg 0 len);
Array.Copy(btmpMsg 20 + len bCorpid 0 btmpMsg.Length - 20 - len);
string oriMsg = Encoding.UTF8.GetString(bMsg);
corpid = Encoding.UTF8.GetString(bCorpid);
return oriMsg;
}
public static String AES_encrypt(String Input string EncodingAESKey string corpid)
{
byte[] Key;
Key = Convert.Frombase64String(EncodingAESKey + “=“);
byte[] Iv = new byte[16];
Array.Copy(Key Iv 16);
string Randcode = CreateRandCode(16);
byte[] bRand = Encoding.UTF8.GetBytes(Randcode);
byte[] bCorpid = Encoding.UTF8.GetBytes(corpid);
byte[] btmpMsg = Encoding.UTF8.GetBytes(Input);
byte[] bMsgLen = BitConverter.GetBytes(HostToNetworkOrder(btmpMsg.Length));
byte[] bMsg = new byte[bRand.Length + bMsgLen.Length + bCorpid.Length + btmpMsg.Length];
Array.Copy(bRand bMsg bRand.Length);
Array.Copy(bMsgLen 0 bMsg bRand.Length bMsgLen.Length);
Array.Copy(btmpMsg 0 bMsg bRand.Length + bMsgLen.Length btmpMsg.Length);
Array.Copy(bCorpid 0 bMsg bRand.Length + bMsgLen.Length + btmpMsg.Length bCorpid.Length);
return AES_encrypt(bMsg Iv Key);
}
private static string CreateRandCode(int codeLen)
{
string codeSerial = “234567
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-06-29 11:09 Demo.WeChat\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\bin\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\bin\Debug\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\bin\Release\
文件 8580 2016-06-23 16:15 Demo.WeChat\Demo.Common\Cryptography.cs
文件 2583 2016-06-29 11:10 Demo.WeChat\Demo.Common\Demo.Common.csproj
文件 227 2016-06-22 01:17 Demo.WeChat\Demo.Common\Demo.Common.csproj.user
文件 9151 2016-06-29 11:09 Demo.WeChat\Demo.Common\Log.cs
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\obj\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\obj\Debug\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\obj\Debug\TempPE\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\obj\Release\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.Common\obj\Release\TempPE\
目录 0 2016-06-29 11:17 Demo.WeChat\Demo.Common\Properties\
文件 1358 2016-06-22 01:17 Demo.WeChat\Demo.Common\Properties\AssemblyInfo.cs
文件 4347 2016-06-29 11:10 Demo.WeChat\Demo.Common\weixinsendmessage.cs
文件 10439 2016-06-23 16:17 Demo.WeChat\Demo.Common\WXBizMsgCrypt.cs
文件 662 2016-06-29 11:10 Demo.WeChat\Demo.Common\wxmessage.cs
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.WeChat\
文件 1410 2016-06-29 11:09 Demo.WeChat\Demo.WeChat.sln
文件 61440 2016-06-29 11:18 Demo.WeChat\Demo.WeChat.suo
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.WeChat\bin\
文件 444 2016-06-29 11:10 Demo.WeChat\Demo.WeChat\Default.aspx
文件 7431 2016-06-29 11:16 Demo.WeChat\Demo.WeChat\Default.aspx.cs
文件 806 2016-06-29 11:11 Demo.WeChat\Demo.WeChat\Default.aspx.designer.cs
文件 4521 2016-06-29 11:11 Demo.WeChat\Demo.WeChat\Demo.WeChat.csproj
文件 1171 2016-06-24 09:31 Demo.WeChat\Demo.WeChat\Demo.WeChat.csproj.user
文件 980 2016-06-29 11:11 Demo.WeChat\Demo.WeChat\Demo.WeChat.Publish.xm
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.WeChat\obj\
目录 0 2016-06-29 11:27 Demo.WeChat\Demo.WeChat\obj\Debug\
............此处省略7个文件信息
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论