首页 新闻 会员 周边

关于调用腾讯云短信接口的问题,老版接口SmsSingleSenderResult

0
悬赏园豆:20 [已解决问题] 解决于 2020-06-08 09:55

调用老版腾讯云短信接口的时候出现了以下问题,服务器上出现的,本地正常,服务器系统为windows server 2012 r2,本地系统为win10;
调用的目标发生了异常。
mscorlib 在 System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
在 System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType)
在 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
在 System.Security.Cryptography.CryptoConfig.CreateFromName(String name)
在 System.Security.Cryptography.SHA256.Create(String hashName)
在 System.Security.Cryptography.SHA256.Create()
在 businessClass.SmsSenderUtil.StrToHash(String str)
在 businessClass.SmsSender.Send(Int32 type, String nationCode, String phoneNumber, String msg, String extend, String ext)>

网上查找原因,找到了一篇类似的,说是使用的加密算法不符合联邦信息处理标准(FIPS)。在组策略中启用了Windows安全选项“系统加密”。
地址为:https://www.cnblogs.com/Katakana/p/10246708.html
通过该文章的解决方案增加了web.config的配置,但是没有效果;

望大神指教

问心、的主页 问心、 | 初学一级 | 园豆:94
提问于:2020-06-05 17:35
< >
分享
最佳答案
0

我们用的也是腾讯云短信接口,计算签名的代码如下:

private string ComputeSignature(string appKey, string mobile, int random, long timestamp)
{
    var input = $"appkey={appKey}&random={random}&time={timestamp}&mobile={mobile}";
    using (var sha = SHA256.Create())
    {
        var hasBytes = sha.ComputeHash(Encoding.UTF8.GetBytes(input));
        return string.Join("", hasBytes.Select(b => b.ToString("x2")));
    }
}
收获园豆:20
dudu | 高人七级 |园豆:30943 | 2020-06-05 18:21
dudu | 园豆:30943 (高人七级) | 2020-06-05 18:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册