逝者如斯夫(三)
C# Api接口调用
记录一下关于C# 的接口调用吧,距离上次更新应该是三年左右了,总是没有时间静下来,正好趁着今天看博客的时候,发现自己也可以再记录一下,因为期间做了其他的语言的开发,最近才搞了一个关于调用第三方接口的功能,里面涉及到两种加密逻辑,感觉可以和大家说一下,废话不多说,开整。。。
- 根据需求文档了解,具体需求,,,到接口文档了,熟悉接口文档,涉及到AES、MD5加密,之前做的接口基本就是MD5加密,Post请求头里面增加token等,但是这个光加密就两种,还没说Post请求头里面需要配置的。
- 滤了一下具体的加密方式AES(MD5(x2),key),生成签名,AES对称加密,ECB模式,PaddingPKCS5;
- 考虑到之前做了很多很多的接口对接,没有把这个小接口放在心上,结果做的时候发现找的AES加密和第三方给的JAVA的加密出来的不一致,这就很尴尬了。。。
- 索性根据自己找到的AES加密改改,上代码;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public static string AESEncrypt(String data, String key) 2 { 3 if (string.IsNullOrEmpty(data)) 4 { 5 return string.Empty; 6 } 7 8 try 9 { 10 int intKeyBit = 128; 11 RijndaelManaged aes = new RijndaelManaged(); 12 byte[] bytsData = Encoding.UTF8.GetBytes(data); 13 byte[] bytsKey = new Byte[intKeyBit / 8]; 14 Array.Copy(Encoding.UTF8.GetBytes(key.PadRight(bytsKey.Length)), bytsKey, bytsKey.Length); 15 16 aes.Mode = CipherMode.ECB; 17 aes.Padding = PaddingMode.PKCS7; 18 aes.KeySize = intKeyBit; 19 aes.Key = bytsKey; 20 //aes.IV = iv; 21 ICryptoTransform ctf = aes.CreateEncryptor(); 22 byte[] bytsResult = ctf.TransformFinalBlock(bytsData, 0, bytsData.Length); 23 24 return Convert.ToBase64String(bytsResult); 25 } 26 catch 27 { 28 return string.Empty; 29 } 30 }
- MD5 的话,就不贴了,简单的很,最后格式为小写x2,大写的是X2,备忘一下;
- 就是这些,别的也不多说了,就是简单的记录一下,省的以后忘记了,此为本人的一点拙见,不息勿喷。