|
|
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- using System.Security.Cryptography;
-
- namespace Com.Alipay
- {
- /// <summary>
- /// 类名:MD5
- /// 功能:MD5加密
- /// 版本:3.3
- /// 修改日期:2012-07-05
- /// 说明:
- /// 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
- /// 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
- /// </summary>
- public sealed class AlipayMD5
- {
- public AlipayMD5()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
-
- /// <summary>
- /// 签名字符串
- /// </summary>
- /// <param name="prestr">需要签名的字符串</param>
- /// <param name="key">密钥</param>
- /// <param name="_input_charset">编码格式</param>
- /// <returns>签名结果</returns>
- public static string Sign(string prestr, string key, string _input_charset)
- {
- StringBuilder sb = new StringBuilder(32);
-
- prestr = prestr + key;
-
- MD5 md5 = new MD5CryptoServiceProvider();
- byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(prestr));
- for (int i = 0; i < t.Length; i++)
- {
- sb.Append(t[i].ToString("x").PadLeft(2, '0'));
- }
-
- return sb.ToString();
- }
-
- /// <summary>
- /// 验证签名
- /// </summary>
- /// <param name="prestr">需要签名的字符串</param>
- /// <param name="sign">签名结果</param>
- /// <param name="key">密钥</param>
- /// <param name="_input_charset">编码格式</param>
- /// <returns>验证结果</returns>
- public static bool Verify(string prestr, string sign, string key, string _input_charset)
- {
- string mysign = Sign(prestr, key, _input_charset);
- if (mysign == sign)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- }
- }
|