void RegisterCommandExecute()
        {
            var myUser = new User()
            {
                FirstName = FirstName,
                LastName  = LastName,
                Email     = Email,
                Login     = Login,
                Password  = SHA1Helper.GetSHA1HashData(Password)
            };
            // Call the service method to insert an user
            var err_code = _client.InsertUser(myUser);

            if (err_code == 0)
            {
                // After adding the user, call the service to log the user and get his id
                myUser.IdUser = _client.LogUser(myUser);
                if (myUser.IdUser != 0)
                {
                    // Get the current window to close it after launching the main window
                    var parentWindow = Application.Current.Windows.Cast <Window>().SingleOrDefault(x => x.IsActive);
                    new MainWindow()
                    {
                        DataContext = new MainWindowViewModel(myUser)
                    }.Show();
                    parentWindow.Close();
                }
            }
            else
            {
                MyMessageBox.ErrorMessageBox(err_code);
            }
        }
Exemplo n.º 2
0
        public override void Start()
        {
            DisplayMessage(string.Format("value:{0}", value));
            string encodeValue = SHA1Helper.Encrypt(value);

            DisplayMessage(string.Format("Encrypt: {0}", encodeValue));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 打包,添加文件信息
        /// </summary>
        public void BuidlerAndResInfo(String _root, String _name, Int32 _version)
        {
            String physics_path = String.Concat(_root, "/", _name);

            // 文件不存在则打包失败
            if (!File.Exists(physics_path))
            {
                throw new FileNotFoundException("[ResConfigFile.BuilderAndResInfo]: 文件 {0} 不存在!", physics_path);
            }

            // 获取校验码
            Byte[] bytes = FileHelper.ReadAllBytesFromFile(physics_path);

            // 检查是否为assetbundle
            // res文件不验证,但却为Assetbundle
            String assetbundleFileHash = null;

            assetbundleFileHash = getAssetbundleFileHash(physics_path, _name);

            ResInfo res_info = new ResInfo(_name, bytes.Length, _version
                                           , SHA1Helper.GetSHA1Hash(bytes), MD5Helper.GetMD5Hash(bytes), 0
                                           , AssetLocation.Void
                                           , assetbundleFileHash == null ? ResourceType.GrtPackage : ResourceType.AssetBundle);

            res_info.AssetBundleTypeTreeHash = assetbundleFileHash;
            AddOrUpdateResInfo(res_info);
            //Log.Info( "Build {0} Done! save to: {1}", _name, physics_path );
        }
Exemplo n.º 4
0
        private string Sign <T>(T t) where T : class
        {
            string xmlString = XmlHelper.Serialize(t);
            string xmlStringWithSecrectBehind = string.Format("{0}{1}", xmlString, SECRECT_KEY);

            return(SHA1Helper.Hash(xmlStringWithSecrectBehind).ToUpper() + xmlString);
        }
 void UpdateProfileCommandExecute()
 {
     User.FirstName = FirstNameTextBox;
     User.LastName  = LastNameTextBox;
     User.Email     = EmailTextBox;
     User.Login     = LoginTextBox;
     User.Password  = SHA1Helper.GetSHA1HashData(PasswordTextBox);
     MyMessageBox.ErrorMessageBox(_client.UpdateUser(User));
 }
Exemplo n.º 6
0
        /// <summary>
        /// 页面Js权限注入
        /// </summary>
        /// <param name="url"></param>
        /// <param name="debug"></param>
        /// <returns></returns>
        public ActionResult QyConfigJs(string url, string debug)
        {
            LogHelper.Info("url:" + url);
            string noncestr        = Guid.NewGuid().ToString();
            string timestamp       = DateTimeHelper.NowToJavaTimeMillis().ToString();
            var    baseDataChannel = BaseDataClientChannelFactory.GetChannel();

            var ticket = baseDataChannel.GetJsApiTicket();

            LogHelper.Info("ticket=" + ticket.Signature);

            if (DateTime.Compare(ticket.Timestamp, DateTime.Now) > 0)
            {
                string[] brr = new string[]
                {
                    "noncestr=" + noncestr,
                    "jsapi_ticket=" + ticket.Signature,
                    "timestamp=" + timestamp,
                    "url=" + url
                };
                Array.Sort(brr);
                string p1        = string.Join("&", brr);
                string signature = SHA1Helper.SHA1_Hash(p1);

                ViewBag.debug     = debug;
                ViewBag.appId     = GlobalHandler.QyApiHandler.wxConfigManager.CorpID;
                ViewBag.noncestr  = noncestr;
                ViewBag.timestamp = timestamp;
                ViewBag.url       = url;
                ViewBag.signature = signature;
            }
            else
            {
                //string signature = GlobalHandler.QyApiHandler.GetJsapiSignature(noncestr, timestamp, url);
                var jsap_ticket = GlobalHandler.QyApiHandler.Get_jsapi_ticket();
                baseDataChannel.UpdateJsApiTicket(jsap_ticket.ticket, DateTime.Now.AddSeconds(7200).ToString());
                string[] arr = new string[]
                {
                    "noncestr=" + noncestr,
                    "jsapi_ticket=" + jsap_ticket.ticket,
                    "timestamp=" + timestamp,
                    "url=" + url
                };
                Array.Sort(arr);
                string p1        = string.Join("&", arr);
                string signature = SHA1Helper.SHA1_Hash(p1);

                ViewBag.debug     = debug;
                ViewBag.appId     = GlobalHandler.QyApiHandler.wxConfigManager.CorpID;
                ViewBag.noncestr  = noncestr;
                ViewBag.timestamp = timestamp;
                ViewBag.url       = url;
                ViewBag.signature = signature;
            }
            return(View());
        }
Exemplo n.º 7
0
        public byte[] GetEncryptBytes(string keySHA1, string keyData)
        {
            string userToken = string.Format("U:{0}:{1}:{2}:T", this.UserID, this.RandomPwd, TimeUtil.NowRealTime() * 10000L);

            byte[] dataToken    = new UTF8Encoding().GetBytes(userToken);
            byte[] macSHA       = SHA1Helper.get_macsha1_bytes(dataToken, keySHA1);
            byte[] encryptToken = new byte[macSHA.Length + dataToken.Length];
            DataHelper.CopyBytes(encryptToken, 0, macSHA, 0, macSHA.Length);
            DataHelper.CopyBytes(encryptToken, macSHA.Length, dataToken, 0, dataToken.Length);
            RC4Helper.RC4(encryptToken, keyData);
            return(encryptToken);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 指示 URL 验证是否成功。
        /// </summary>
        /// <param name="context">当前 Http 上下文。</param>
        /// <returns>验证是否成功。</returns>
        /// <exception cref="System.ArgumentNullException"><c>context</c> 为 null。</exception>
        private static bool IsSignature(HttpContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            List <string> tokens = new List <string>();

            // 获取数据库的 Token。
            W_WeChatInfoBLL bll = new W_WeChatInfoBLL();

            tokens.AddRange(bll.GetAll().Select(temp => temp.Token));

            // 获取 web.config 的 Token。
            if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["Token"]) == false)
            {
                tokens.Add(ConfigurationManager.AppSettings["Token"]);
            }

            // 去重。
            tokens = tokens.Distinct().ToList();

            if (tokens.Count <= 0)
            {
                return(false);
            }
            else
            {
                // 尝试校验每个 Token。
                foreach (var token in tokens)
                {
                    // 微信加密签名,signature 结合了开发者填写的 token 参数和请求中的 timestamp 参数、nonce 参数。
                    string signature = context.Request["signature"] ?? string.Empty;
                    // 时间戳。
                    string timestamp = context.Request["timestamp"] ?? string.Empty;
                    // 随机数。
                    string nonce = context.Request["nonce"] ?? string.Empty;

                    // 将 token、timestamp、nonce 三个参数进行字典序排序并拼接成一个字符串。
                    string validateStr = string.Join(string.Empty, new string[] { token, timestamp, nonce }.OrderBy(temp => temp));

                    // 将验证字符串进行 sha1 加密并与 signature 对比,标识该请求来源于微信。
                    bool result = string.Equals(SHA1Helper.GetStringSHA1(validateStr), signature, StringComparison.OrdinalIgnoreCase);

                    if (result == true)
                    {
                        return(true);
                    }
                }
                return(false);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 设置加密并做了完整性保护的字节流
        /// </summary>
        /// <param name="buffer"></param>
        /// <returns></returns>
        public int SetEncryptBytes(byte[] buffer, string keySHA1, string keyData, long maxTicks)
        {
            //先解密数据
            RC4Helper.RC4(buffer, keyData);

            //拆分MACSHA1和DATATOKEN
            byte[] macSHA1 = new byte[20]; //固定的20个字节
            DataHelper.CopyBytes(macSHA1, 0, buffer, 0, macSHA1.Length);

            byte[] dataToken = new byte[buffer.Length - 20];
            DataHelper.CopyBytes(dataToken, 0, buffer, 20, dataToken.Length);

            //校验MACSHA1是否正确
            byte[] verifyMacSHA1 = SHA1Helper.get_macsha1_bytes(dataToken, keySHA1);
            if (!DataHelper.CompBytes(verifyMacSHA1, macSHA1))
            {
                return(-1); //不想同,数据被篡改过了
            }

            if (dataToken[0] == NormalTokenHeader)
            {
                //如果相同则解析用户ID和随机密码
                string   strToken    = new UTF8Encoding().GetString(dataToken);
                string[] parseTokens = strToken.Split(':');
                if (parseTokens.Length != 5) //个数不同,被篡改过了
                {
                    return(-2);
                }

                //是否是自己的协议
                if (parseTokens[0] != "U" || parseTokens[4] != "T")
                {
                    return(-3);
                }

                //时间戳
                long ticks = (long)Convert.ToUInt64(parseTokens[3]);
                if (TimeUtil.NowRealTime() * 10000 - ticks >= maxTicks && GameManager.GM_NoCheckTokenTimeRemainMS <= 0) //时间戳已经过期
                {
                    return(-4);
                }

                UserID    = parseTokens[1];
                RandomPwd = (int)Convert.ToUInt32(parseTokens[2]);
            }
            else
            {
                return(-3);
            }

            return(0);
        }
Exemplo n.º 10
0
        public static void ValidarValor(NameValueCollection formValues, string name)
        {
            if (formValues != null)
            {
                var valor = formValues[name];
                var hash  = formValues[name + "_sha1"];

                if (hash != SHA1Helper.GerarHash(valor))
                {
                    throw new SecurityException(string.Format(MensagensPadrao.MsgCampoSeguro, name));
                }
            }
        }
Exemplo n.º 11
0
        public int SetEncryptBytes(byte[] buffer, string keySHA1, string keyData, long maxTicks)
        {
            RC4Helper.RC4(buffer, keyData);
            byte[] macSHA = new byte[20];
            DataHelper.CopyBytes(macSHA, 0, buffer, 0, macSHA.Length);
            byte[] dataToken = new byte[buffer.Length - 20];
            DataHelper.CopyBytes(dataToken, 0, buffer, 20, dataToken.Length);
            byte[] verifyMacSHA = SHA1Helper.get_macsha1_bytes(dataToken, keySHA1);
            int    result;

            if (!DataHelper.CompBytes(verifyMacSHA, macSHA))
            {
                result = -1;
            }
            else if (dataToken[0] == 85)
            {
                string   strToken    = new UTF8Encoding().GetString(dataToken);
                string[] parseTokens = strToken.Split(new char[]
                {
                    ':'
                });
                if (parseTokens.Length != 5)
                {
                    result = -2;
                }
                else if (parseTokens[0] != "U" || parseTokens[4] != "T")
                {
                    result = -3;
                }
                else
                {
                    long ticks = (long)Convert.ToUInt64(parseTokens[3]);
                    if (TimeUtil.NowRealTime() * 10000L - ticks >= maxTicks && GameManager.GM_NoCheckTokenTimeRemainMS <= 0L)
                    {
                        result = -4;
                    }
                    else
                    {
                        this.UserID    = parseTokens[1];
                        this.RandomPwd = (int)Convert.ToUInt32(parseTokens[2]);
                        result         = 0;
                    }
                }
            }
            else
            {
                result = -3;
            }
            return(result);
        }
Exemplo n.º 12
0
        /// 获取加密并做了完整性保护的字节流
        public byte[] GetEncryptBytes(string keySHA1, string keyData)
        {
            string userToken = string.Format("U:{0}:{1}:{2}:T", UserID, RandomPwd, DateTime.Now.Ticks);

            byte[] dataToken    = new UTF8Encoding().GetBytes(userToken);
            byte[] macSHA1      = SHA1Helper.get_macsha1_bytes(dataToken, keySHA1);
            byte[] encryptToken = new byte[macSHA1.Length + dataToken.Length];
            DataHelper.CopyBytes(encryptToken, 0, macSHA1, 0, macSHA1.Length);
            DataHelper.CopyBytes(encryptToken, macSHA1.Length, dataToken, 0, dataToken.Length);

            //加密数据
            RC4Helper.RC4(encryptToken, keyData);
            return(encryptToken);
        }
        private DataTable CreateDataTableWithNameAndSha1Columns(ICollection <string> pageNames)
        {
            var pages = pageNames.Distinct().Select(p => new { Name = p, SHA1 = SHA1Helper.GetSHA1String(p) }).ToArray();

            var tbl = new DataTable();

            tbl.Columns.Add("PageName");
            tbl.Columns.Add("PageSHA1");
            foreach (var page in pages)
            {
                tbl.Rows.Add(new[] { page.Name, page.SHA1 });
            }
            return(tbl);
        }
Exemplo n.º 14
0
        internal Common.Torrent GetTorrent()
        {
            var calculatedInfoHash = SHA1Helper.ComputeHash(Stream.ToArray());

            if (!Manager.InfoHash.Equals(calculatedInfoHash))
            {
                throw new Exception("invalid metadata"); //restart ?
            }
            var d    = BEncodedValue.Decode(Stream);
            var dict = new BEncodedDictionary {
                { "info", d }
            };

            return(Common.Torrent.LoadCore(dict));
        }
Exemplo n.º 15
0
        internal static MonoTorrentCollection <int> Calculate(byte[] addressBytes, InfoHash infohash, int count,
                                                              uint numberOfPieces)
        {
            var hashBuffer = new byte[24];                           // The hash buffer to be used in hashing
            var results    = new MonoTorrentCollection <int>(count); // The results array which will be returned

            // 1) Convert the bytes into an int32 and make them Network order
            var ip = BitConverter.ToInt32(addressBytes, 0);

            // 2) binary AND this value with 0xFFFFFF00 to select the three most sigificant bytes
            var ipMostSignificant = (int)(0xFFFFFF00 & ip);

            // 3) Make ipMostSignificant into NetworkOrder
            var ip2 = (uint)ipMostSignificant;

            // 4) Copy ip2 into the hashBuffer
            Buffer.BlockCopy(BitConverter.GetBytes(ip2), 0, hashBuffer, 0, 4);

            // 5) Copy the infohash into the hashbuffer
            Buffer.BlockCopy(infohash.Hash, 0, hashBuffer, 4, 20);

            // 6) Keep hashing and cycling until we have AllowedFastPieceCount number of results
            // Then return that result
            while (true)
            {
                hashBuffer = SHA1Helper.ComputeHash(hashBuffer);

                for (var i = 0; i < 20; i += 4)
                {
                    var result = (uint)(BitConverter.ToInt32(hashBuffer, i));

                    result = result % numberOfPieces;
                    if (result > int.MaxValue)
                    {
                        return(results);
                    }

                    results.Add((int)result);

                    if (count == results.Count)
                    {
                        return(results);
                    }
                }
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// 获取签名结果 base64格式的签名字符串
        /// </summary>
        /// <param name="secretKey">签名秘钥</param>
        /// <param name="args">待签名的字典数据</param>
        /// <param name="algorithm">算法名称,默认SHA1</param>
        /// <param name="valueFunc">签名时value部分如何转换委托,默认原样输出,如果输入了委托,并且委托结果返回null,则该value将不参与签名</param>
        /// <param name="signFunc">签名结果如何输出成字符串委托,默认转换成大写的16进制格式字符串</param>
        /// <param name="encodingName">字符串转换为byte[]时采用的编码,默认UTF-8</param>
        /// <param name="removeKeys">不参与签名的Key集合,不传递则使用<see cref="defaultRemoveKeysWhenSign"/></param>
        /// <returns>返回结果由signFunc决定,默认转换成大写的16进制格式字符串</returns>
        public static string GetSignData(string secretKey, SortedDictionary <string, string> args, string algorithm = "SHA1", Func <string, string> valueFunc = null, Func <byte[], string> signFunc = null, string encodingName = "UTF-8", params string[] removeKeys)
        {
            StringBuilder tmp = new StringBuilder();

            if (removeKeys == null || removeKeys.Length == 0)
            {
                removeKeys = defaultRemoveKeysWhenSign;
            }
            foreach (var kv in args)
            {
                if (kv.Value == null || removeKeys.Any(k => k.Equals(kv.Key, StringComparison.OrdinalIgnoreCase)))
                {
                    continue;
                }
                var value = kv.Value;
                if (valueFunc != null)
                {
                    value = valueFunc(kv.Value);
                    if (value == null)
                    {
                        continue;
                    }
                }

                tmp.Append('&');
                tmp.Append(kv.Key);
                tmp.Append('=');
                tmp.Append(value);
            }
            if (tmp.Length > 0)
            {
                tmp = tmp.Remove(0, 1);
            }
            tmp.Append(secretKey);
            var data   = HashSignatureHelper.SignData(Encoding.GetEncoding(encodingName).GetBytes(tmp.ToString()), algorithm);
            var retStr = signFunc?.Invoke(data);

            if (retStr == null)
            {
                retStr = SHA1Helper.ConvertToString(data);
            }
            return(retStr);
        }
Exemplo n.º 17
0
        public User Login(string account, string password, string endpoint, Dictionary <string, string> properties, out string ticket)
        {
            ticket = null;
            if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
            {
                return(null);
            }
            //账号不区分大小写
            account = account.ToUpper();
            //获取服务端加密后的密码
            string   encryptedPassword = SHA1Helper.SHA1(password);
            ISession session           = DBOperator.Instance.GetCurrentSession();
            User     user = session.Query <User>()
                            .Where(p => p.Account.ToUpper() == account && p.Password == encryptedPassword)
                            .SingleOrDefault();

            if (user == null)
            {
                //用户名或密码错误,登录失败
                return(null);
            }

            //客户端为每个用户创建一个票据,而移动端为每个设备创建一个票据
            //创建身份票据
            ticket = WebRequestContext.Current().CreateTicket();



            //url权限、菜单权限(node端使用)
            //操作权限(调用服务方法时使用)

            //设置当前登录系统的终端类型
            Session[LilacRequestContext.EndpointKey] = endpoint;

            //设置当前登录用户信息
            this.CurrentUser = new UserInfo()
            {
                UserID   = user.ID,
                UserName = user.Name,
            };
            return(user.UnWrapNHibernateClass());
        }
Exemplo n.º 18
0
        /// <param name="id">The ID of the option, used to maintain the last value when <paramref name="saveValue"/> is true and to transmit the value between players</param>
        /// <param name="name">The name/title of the option</param>
        /// <param name="saveValue">Saves the last value of the option to apply again when the game is reopened (only applies for the lobby host)</param>
        /// <param name="type">The option type. See <see cref="CustomOptionType"/>.</param>
        /// <param name="value">The initial/default value</param>
        protected CustomOption(string id, string name, bool saveValue, CustomOptionType type, object value)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentNullException(nameof(id), "Option id cannot be null or empty.");
            }

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name), "Option name cannot be null or empty.");
            }

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value), "Value cannot be null");
            }

            PluginID = PluginHelpers.GetCallingPluginId();
            ConfigID = id;

            //string Id = ID = $"{nameof(CustomOption)}_{PluginID}_{id}";
            string Id = ID = $"{PluginID}_{id}";

            Name = name;

            SaveValue = saveValue;

            Type         = type;
            DefaultValue = OldValue = Value = value;

            int i = 0;

            while (Options.Any(option => option.ID.Equals(ID, StringComparison.Ordinal)))
            {
                ID       = $"{Id}_{++i}";
                ConfigID = $"{id}_{i}";
            }

            SHA1 = SHA1Helper.Create(ID);

            Options.Add(this);
        }
        private static byte[] ComputeHash(byte[] content, string algorithm)
        {
            switch (algorithm.ToUpper())
            {
            case "MD5":
                return(MD5Helper.ComputeHash(content));

            case "SHA256":
                return(SHA256Helper.ComputeHash(content));

            case "SHA384":
                return(SHA384Helper.ComputeHash(content));

            case "SHA512":
                return(SHA512Helper.ComputeHash(content));

            default:
                return(SHA1Helper.ComputeHash(content));
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// 获取JSAPI配置信息
        /// </summary>
        /// <param name="batch"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public JsApiConfig GetJsApiConfig(string batch, string url)
        {
            ArgumentHelper.AssertNotNullOrEmpty(batch, "batch is null or empty");
            ArgumentHelper.AssertNotNullOrEmpty(url, "url is null or empty");

            var batchInfo   = ProviderGateway.CallbackContentProvider.GetByBatchId(batch);
            var accountInfo = ProviderGateway.AppAccountProvider.Get(batchInfo.AppAccountPrivate);
            var ticket      = GetTicket(accountInfo, TokenType.JsApi);
            var nonceStr    = Guid.NewGuid().ToString();
            var timeStamp   = DateTimeHelper.ConvertToUnixTimeStamp(DateTime.Now);
            var signature   = SHA1Helper.ConverToSHA1Str(string.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}", ticket, nonceStr, timeStamp, url)).ToLower();

            return(new JsApiConfig
            {
                Url = url,
                AgentId = accountInfo.AgentId,
                TimeStamp = timeStamp,
                AppId = accountInfo.AppId,
                Signature = signature,
                NonceStr = nonceStr
            });
        }
        public async Task <bool> IsPasswordPwned(string password, CancellationToken cancellationToken = default)
        {
            //to call the API, we need to pass the first 5 characters of SHA1 password

            //compute SHA1 hash from helper class
            var sha1pwd    = SHA1Helper.ComputeSHA1Hash(password);
            var sha1Prefix = sha1pwd.Substring(0, 5);
            var sha1Suffix = sha1pwd.Substring(5);

            //https://haveibeenpwned.com/API/v2#SearchingPwnedPasswordsByRange
            //search pwd by range

            try
            {
                var response = await _client.GetAsync("range/" + sha1Prefix, cancellationToken);


                if (response.IsSuccessStatusCode)
                {
                    var result = await Contains(response.Content, sha1Suffix);

                    if (result.isPwned)
                    {
                    }
                    else
                    {
                    }

                    return(result.isPwned);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(false);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 参数签名
        /// </summary>
        /// <param name="pu"></param>
        /// <param name="url"></param>
        /// <param name="consumer_secret"></param>
        /// <returns></returns>
        public static string SignIt(Dictionary <string, string> pu, string url, string consumer_secret)
        {
            foreach (var key in pu.Keys.ToArray())
            {
                var value = pu[key];
                pu[key] = value.UrlEncodeToUpper();
            }

            pu = pu.OrderBy(a => a.Key).ToDictionary(a => a.Key, b => b.Value);
            var stringA = string.Join("&", pu.Select(a => a.Key + "=" + a.Value));
            var stringB = url + "?" + stringA + consumer_secret;
            var byteB   = Encoding.UTF8.GetBytes(stringB);
            var sb      = new StringBuilder(byteB.Length * 2);

            foreach (var b in byteB)
            {
                sb.AppendFormat("{0:x2}", b);
            }
            var stringC = sb.ToString();
            var sig     = SHA1Helper.SHA1_Hash(stringC);

            return(sig);
        }
Exemplo n.º 23
0
        void LogOnCommandExecute()
        {
            var myUser = new User()
            {
                Login    = Login,
                Password = SHA1Helper.GetSHA1HashData(Password)
            };

            myUser.IdUser = _client.LogUser(myUser);
            if (myUser.IdUser != 0)
            {
                // Get the current window to close it after opening main window
                var parentWindow = Application.Current.Windows.Cast <Window>().SingleOrDefault(x => x.IsActive);
                new MainWindow
                {
                    DataContext = new MainWindowViewModel(_client.SelectUserById(myUser.IdUser))
                }.Show();
                parentWindow.Close();
            }
            else
            {
                MyMessageBox.ErrorMessageBox(ErrorHelper.ERR_200.code);
            }
        }
 public string GenerateCacheFileName(string fileUrl)
 {
     return(SHA1Helper.ComputeHash(fileUrl));
 }
 public string GetPageHash(string pageName)
 {
     return(SHA1Helper.GetSHA1String(pageName));
 }
Exemplo n.º 26
0
 public static string GetPassword(string password)
 {
     return(SHA1Helper.GetHash(password));
 }
Exemplo n.º 27
0
 public static bool IsComparePass(string password, string hashPassword)
 {
     return(SHA1Helper.IsCompare(password, hashPassword));
 }
Exemplo n.º 28
0
 private static MvcHtmlString ObterHashFieldHtml(HtmlHelper htmlHelper, string name, string value)
 {
     return(htmlHelper.Hidden((name + "_sha1"), SHA1Helper.GerarHash(value)));
 }
Exemplo n.º 29
0
        /// <summary>
        /// 返回JsApi配置参数
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public JsonResult QyConfig(string url)
        {
            LogHelper.Info("url=" + url);
            string noncestr  = Guid.NewGuid().ToString();
            string timestamp = DateTimeHelper.NowToJavaTimeMillis().ToString();
            //string signature = GlobalHandler.QyApiHandler.GetJsapiSignature(noncestr, timestamp, url);

            var baseDataChannel = BaseDataClientChannelFactory.GetChannel();
            var ticket          = baseDataChannel.GetJsApiTicket();

            if (DateTime.Compare(ticket.Timestamp, DateTime.Now) > 0)
            {
                string[] arr = new string[]
                {
                    "noncestr=" + noncestr,
                    "jsapi_ticket=" + ticket,
                    "timestamp=" + timestamp,
                    "url=" + url
                };
                Array.Sort(arr);
                string p1        = string.Join("&", arr);
                string signature = SHA1Helper.SHA1_Hash(p1);

                return(Json(
                           new
                {
                    state = 1,
                    config =
                        new
                    {
                        appId = GlobalHandler.QyApiHandler.wxConfigManager.CorpID,
                        timestamp = timestamp,
                        nonceStr = noncestr,
                        signature = signature
                    }
                }));
            }
            else
            {
                var jsap_ticket = GlobalHandler.QyApiHandler.Get_jsapi_ticket();

                baseDataChannel.UpdateJsApiTicket(jsap_ticket.ticket, DateTime.Now.AddSeconds(7200).ToString());

                string[] arr = new string[]
                {
                    "noncestr=" + noncestr,
                    "jsapi_ticket=" + jsap_ticket.ticket,
                    "timestamp=" + timestamp,
                    "url=" + url
                };
                Array.Sort(arr);
                string p1        = string.Join("&", arr);
                string signature = SHA1Helper.SHA1_Hash(p1);

                return(Json(
                           new
                {
                    state = 1,
                    config =
                        new
                    {
                        appId = GlobalHandler.QyApiHandler.wxConfigManager.CorpID,
                        timestamp = timestamp,
                        nonceStr = noncestr,
                        signature = signature
                    }
                }));
            }
        }
Exemplo n.º 30
0
        protected override async void HandleLtMetadataMessage(PeerId id, LTMetadata message)
        {
            base.HandleLtMetadataMessage(id, message);

            switch (message.MetadataMessageType)
            {
            case LTMetadata.eMessageType.Data:
                if (Stream == null)
                {
                    throw new Exception("Need extention handshake before ut_metadata message.");
                }

                Stream.Seek(message.Piece * LTMetadata.BlockSize, SeekOrigin.Begin);
                Stream.Write(message.MetadataPiece, 0, message.MetadataPiece.Length);
                _bitField[message.Piece] = true;
                if (_bitField.AllTrue)
                {
                    Stream.Position = 0;
                    var hash = SHA1Helper.ComputeHash(Stream.ToArray());

                    if (!Manager.InfoHash.Equals(hash))
                    {
                        _bitField.SetAll(false);
                    }
                    else
                    {
                        Common.Torrent t;
                        Stream.Position = 0;
                        var dict = new BEncodedDictionary {
                            { "info", BEncodedValue.Decode(Stream) }
                        };
                        // FIXME: Add the trackers too
                        if (Common.Torrent.TryLoad(dict.Encode(), out t))
                        {
                            try
                            {
                                var file = await _saveFolder.CreateFileAsync(Manager.InfoHash.ToHex() + ".torrent",
                                                                             CreationCollisionOption.ReplaceExisting);

                                File.WriteAllBytes(file.Path, dict.Encode());
                            }
                            catch (Exception ex)
                            {
                                Debug.WriteLine("*METADATA EXCEPTION* - Can not write in {0} : {1}", _saveFolder,
                                                ex);
                                Manager.Error = new Error(Reason.WriteFailure, ex);
                                Manager.Mode  = new ErrorMode(Manager);
                                return;
                            }
                            t.TorrentPath   = _saveFolder.Path;
                            Manager.Torrent = t;
                            SwitchToRegular();
                        }
                        else
                        {
                            _bitField.SetAll(false);
                        }
                    }
                }
                //Double test because we can change the bitfield in the other block
                if (!_bitField.AllTrue)
                {
                    RequestNextNeededPiece(id);
                }
                break;

            case LTMetadata.eMessageType.Reject:
                //TODO
                //Think to what we do in this situation
                //for moment nothing ;)
                //reject or flood?
                break;

            case LTMetadata.eMessageType.Request:     //ever done in base class but needed to avoid default
                break;

            default:
                throw new MessageException(string.Format("Invalid messagetype in LTMetadata: {0}",
                                                         message.MetadataMessageType));
            }
        }