首页
未解之谜
天体物理
科技前沿
下载中心
游戏天地
[FW:AdTitle]
首页 >> 服务器链接失败! >> 正文

七牛云存储时间戳防盗设置 ASP.NET2018-5-22|阅读:596 次|出处:本站原创|编辑:管理员

  • 因需要,小编牵扯到七牛云的时间戳防盗问题。

    经过对PHP的研究。终于出了一个C#.NET 的了。现在分享给大家。

    14352669.com原创


    官方文档说明

    https://developer.qiniu.com/fusion/kb/1670/timestamp-hotlinking-prevention



    直接上代码:

            /// <summary>
            /// 生成时间戳
            /// </summary>
            /// <returns></returns>
            public string Time(int Miao)
            {
                DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
                long timeStamp = (long)(DateTime.Now.AddSeconds(Miao) - startTime).TotalSeconds; // 相差秒数
                return timeStamp.ToString();
            }



           /// <summary>
            /// MD5 32位加密
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public string UserMd5(string str)
            {
                string cl = str;
                string pwd = "";
                MD5 md5 = MD5.Create();//实例化一个md5对像
                // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
                byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
                // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
                for (int i = 0; i < s.Length; i++)
                {
                    // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
                    pwd = pwd + s[i].ToString("x2");

                }
                return pwd;
            }

           /// <summary>
            /// 生成防盗链接
            /// </summary>
            /// <param name="Url">七牛云文件</param>

           /// <param name="Miao">可访问时长(秒)</param>
            /// <returns></returns>
            public string GetUrl(string Url,int Miao)
            {
                string retrunTxt = "";
                long number = Convert.ToInt64(Time(Miao));

                //Response.Write(DateTime.Now + "<br/>");
                //Response.Write(number + "<br/>");

                string T = Convert.ToString(number, 16);
                string key = "七牛生成KEY";

                Uri uri = new Uri(Url);
                string S = key;
                string L = "?";
                if (uri.PathAndQuery.IndexOf('?') > -1)
                {
                    string[] Arr = uri.PathAndQuery.Split('?');
                    S += Arr[0] + T;
                    L = "&";
                }
                else
                {
                    S += uri.PathAndQuery + T;
                }

                retrunTxt = UserMd5(S);

                return Url + L + "sign=" + retrunTxt + "&t=" + T;
            }

免责声明:本文所提供的信息(包括图片、文字、视频等)内容均来源于网络,只供参考之用,不代表本站观点。如有侵权、违规,请联系我们删除。
上一条:没有了!下一条:没有了!
今日推荐
Copyright © 2017-2020 怪里咕咚 All Rights Reserved
滇ICP备17000807号-2
访问量: