苏飞论坛

标题: 使用RSA算法来验证【短信发送】 [打印本页]

作者: 惜    时间: 2018-11-26 16:12
标题: 使用RSA算法来验证【短信发送】
导读部分

1.目录贴 C#.NET服务端接口和Android、IOS之间的那些事

需求
防止短信被刷
内容
有段时间,短信的量有点大,然后上面就不高兴了。想了想 加个密 做个验签试试吧!然而发现AndroidIOS有些出入,所以加个字段以区分。代码如下:
[C#] 纯文本查看 复制代码
            var ret = new JsonMsgRet<object>();
            // 获取参数
            var mobile = context.Request.Params["mobile"];
            var time = context.Request.Params["time"];
            var sign = InputHelper.CleanInputString(context.Request.Params["sign"]);
            var source = InputHelper.GetInputInt(context.Request.Params["source"]);

            Dictionary<string, string> param = new Dictionary<string, string>();
            param.Add("mobile", mobile);
            param.Add("time", time);

            bool isBool = false;
            if (source == 0)
            {
                //0 代表Android
                param.Add("sign", sign);
                param["sign"] = HttpUtility.UrlDecode(param["sign"], Encoding.UTF8);
                //此类库借助支付宝AopSdk.dll Android这块直接使用[验签]的方法来验证。
                isBool = AlipaySignature.RSACheckV2(param, AlipayAppConfig.Code_PUBLIC, AlipayAppConfig.CHARSET, "RSA2", false);
            }
            else
            {
                //1 代表IOS
                param.Add("source", source.ToString());
                //此类库借助支付宝RSAFromPkcs8.cs  
                var value = RSAFromPkcs8.RSADecrypt(sign, AlipayAppConfig.Code_PRIVATE_8, AlipayAppConfig.CHARSET);
                if (AlipaySignature.GetSignContent(param) == value)
                {
                    isBool = true;
                }
            }

            if (!isBool)
            {
                ret.Status = MsgStatus.Failed;
                ret.Content = "签名验证失败";
                ret.ReturnValue = -1;
                context.Response.Write(ret.ToJson());
                return;
            }






作者: liu    时间: 2018-11-26 16:17
真是难得给力的帖子啊。
作者: 站长苏飞    时间: 2018-11-26 16:50
这种做法非常好,直接省去了输入图片验证码的麻烦,直接使用程序的方法解决问题,安全,又不怕攻击

现在很多App登录,注册加验证码目的就是为防止用户刷短信,或者恶意攻击,这将是一个非常受欢迎的解决方案。
作者: 范范    时间: 2018-11-26 16:57
支持楼主, 方法很实用, 改天要应用下
作者: 范范    时间: 2018-11-26 16:58
这样的双向加密, 很难破解, 只要两边约定好, 基本上就可以避免刷短信了, 楼主加油, 看好你呦




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4