Являются ли имена аккаунтов Steam приватными?

Насколько я понял, в Steam существует четыре типа идентификаторов:

  • Имя учетной записи
  • Электронная почта учетной записи
  • Имя профиля
  • Имя сообщества Steam

У меня есть настоящее имя в имени учетной записи и адрес электронной почты, и я хотел бы сохранить его в тайне. Имя в моем профиле — это то, что я хотел бы, чтобы другие видели.

Мой вопрос: видят ли другие (включая ваших друзей в Steam ) имя вашей учетной записи или адрес электронной почты?


Чтобы ответить на ваш вопрос, имена аккаунтов в Steam являются личными. Ваш адрес электронной почты также является личным, так как он необходим, если вы когда-нибудь сделаете пожертвование.
Ниже вы можете увидеть информацию об игроке самого высокого уровня Steam согласно SteamDB.

Это наибольшая информация, которую вы можете получить о чьей-либо учетной записи, не спрашивая этого человека.


Имена учетных записей Steam являются личными, если вы не снимаете их на камеру или что-то в этом роде. Или имя вашего профиля совпадает с именем вашей учетной записи Steam, оно остается личным.



«Имя учетной записи или пароль что вы ввели неверно »Ошибка API Steam

Я получил « Имя учетной записи или пароль, который вы ввели неверно » при попытке входа в систему с помощью этого API конечная точка: https://steamcommunity.com/login/dologin/

Я использую учетные данные, которые использую при входе в систему через приложение Steam или веб-сайт Steam, поэтому я не думаю, что у меня проблема с моими учетными данными.

Вот код, который я использую:

  public bool DoLogin (строковое имя пользователя, строковый пароль) {var data = new NameValueCollection  {{"имя пользователя", имя пользователя}}; //Сначала получите ключ RSA, с помощью которого мы зашифруем наш пароль.  строка response = Fetch («https://steamcommunity.com/login/getrsakey», «POST», data, false);  GetRsaKey rsaJson = JsonConvert.DeserializeObject  (ответ); //Проверяем, можем ли мы получить ключ rsa.  если (! rsaJson.success) {вернуть ложь;  }//Шифрование RSA.  RSACryptoServiceProvider rsa = новый RSACryptoServiceProvider ();  RSAParameters rsaParameters = новые RSAParameters {Exponent = HexToByte (rsaJson.publickey_exp), Modulus = HexToByte (rsaJson.publickey_mod)};  rsa.ImportParameters (rsaParameters); //Зашифруйте пароль и преобразуйте его.  byte [] bytePassword = Encoding.ASCII.GetBytes (пароль);  byte [] encodedPassword = rsa.Encrypt (bytePassword, ложь);  строка encryptedBase64Password = Convert.ToBase64String (encodedPassword);  SteamResult loginJson = null;  CookieCollection cookieCollection;  строка steamGuardText = "";  строка steamGuardId = ""; //Сделайте это, пока нам нужна капча или аутентификация по электронной почте.  Возможно, вы неправильно ввели капчу или код SteamGaurd, если это происходит несколько раз.  do {Console. WriteLine ("SteamWeb: Вход в систему ...");  bool captcha = loginJson! = null && loginJson.captcha_needed;  bool steamGuard = loginJson! = null && loginJson.emailauth_needed;  строка time = Uri.EscapeDataString (rsaJson.timestamp);  строка capGid = строка.Empty; //Ответ не нужно отправлять, нужна капча или нет. //ReSharper отключит один раз MergeSequentialChecks if (loginJson! = Null && loginJson.captcha_gid! = Null) {capGid = Uri.EscapeDataString (loginJson.captcha_gid);  } data = new NameValueCollection {{"пароль", encryptedBase64Password}, ​​{"имя пользователя", имя пользователя}}; //Проверка капчи.  строка capText = "";  if (captcha) {Console.WriteLine ("SteamWeb: требуется Captcha.");  System.Diagnostics.Process.Start ("https://steamcommunity.com/public/captcha.php?gid=" + loginJson.captcha_gid);  Console.WriteLine ("SteamWeb: введите капчу:");  строка consoleText = Console.ReadLine ();  если (! строка.IsNullOrEmpty (consoleText)) {capText = Uri.EscapeDataString (consoleText);  }} data.Add ("captchagid", captcha? capGid: "-1");  data.Add ("captcha_text", captcha? capText: ""); //Конец капчи. //Добавлен заголовок для двухфакторного кода.  data.Add ("двухфакторный код", ""); //Добавлен заголовок для запоминания логина.  Также может быть установлено значение true.  data.Add ("запомнить_логин", "ложь"); //Проверка SteamGuard.  Если SteamGuard включен, вам необходимо войти в него.  Уход, вероятно, вам нужно подождать 7 дней, чтобы торговать. //Для получения дополнительной информации о SteamGuard см: https://support.steampowered.com/kb_article.php?ref=4020-ALZM-5519&l=english.  if (steamGuard) {Console.WriteLine ("SteamWeb: необходим SteamGuard.");  Console.WriteLine ("SteamWeb: введите код:");  строка consoleText = Console.ReadLine ();  если (! строка.IsNullOrEmpty (consoleText)) {steamGuardText = Uri.EscapeDataString (consoleText);  } steamGuardId = loginJson.emailsteamid; //Добавляем имя машины в коллекцию NameValueCollection, потому что это запрашивается Steam.  Console.WriteLine ("SteamWeb: введите имя вашей машины:");  consoleText = Console.ReadLine ();  var machineName = string.IsNullOrEmpty (consoleText)?  "": Uri.EscapeDataString (consoleText);  data.Add ("loginfriendlyname", machineName! = ""? machineName: "defaultSteamBotMachine");  } data.Add ("emailauth", steamGuardText);  data.Add ("emailsteamid", steamGuardId); //Конец SteamGuard. //Добавлен unixTimestamp.  В запрос включается нормально.  var unixTimestamp = (int) (DateTime.UtcNow.Subtract (новый DateTime (1970, 1, 1))). TotalSeconds; //Добавлены три нуля, потому что Steam имеет странную интерпретацию временных меток unix.  data.Add ("donotcache", unixTimestamp + "000");  data.Add ("rsatimestamp", время); //Отправляем фактический логин.  используя (HttpWebResponse webResponse = Request ("https://steamcommunity. com/login/dologin/"," POST ", data, false)) {var stream = webResponse.GetResponseStream (); if (stream == null) {return false;} using (StreamReader reader = new StreamReader (stream))  {string json = reader.ReadToEnd (); loginJson = JsonConvert.DeserializeObject  (json); cookieCollection = webResponse.Cookies;}}} while (loginJson.captcha_needed || loginJson.emailauth_needed);//Если вход был успешным  , нам нужно ввести файлы cookie в Steam. if (loginJson.success) {_cookies = new CookieContainer (); foreach (Cookie cookie в cookieCollection) {_cookies.Add (cookie);} SubmitCookies (_cookies); return true;} else  {Console.WriteLine ("Ошибка SteamWeb:" + loginJson.message); return false;}}  

введите описание изображения здесь

Есть еще решение, как войти в Steam и получить html?


Хорошо, я проверил ваше шифрование, и все выглядит нормально. В вашем коде немного хаоса, поэтому я объясню это с моим:

Я предпочитаю использовать RestSha rp и Newton Soft JSON для этого, поэтому немного обязательных вещей в теле класса:

  private IRestClient restClientTemporary;  частная строка getKeysURL = "/логин/getrsakey/";  частная строка loginWithKey = "/login/dologin/";  

Создать RestClient и RestRequests:

  restClientTemporary = new RestClient (  "https://steamcommunity.com"); var request = new RestRequest (getKeysURL, Method.POST); request.AddParameter ("имя пользователя", "YourSteamLogin"); var resp = restClientTemporary.Execute (запрос); GetRsaResult response =  Newtonsoft.Json.JsonConvert.DeserializeObject  (соответственно Content);  

Затем я использовал ваш код как метод для шифрования:

  общедоступная статическая строка EncryptionSof (строка пароля, ответ GetRsaResult) {RSACryptoServiceProvider rsa = new RSACryptoServiceProvider ();  RSAParameters rsaParameters = new RSAParameters {Exponent = HexToByte (response.publickey_exp), Modulus = HexToByte (response.publickey_mod)};  rsa.ImportParameters (rsaParameters); //Зашифруйте пароль и преобразуйте его.  byte [] bytePassword = Encoding.ASCII.GetBytes (пароль);  byte [] encodedPassword = rsa.Encrypt (bytePassword, ложь);  return Convert.ToBase64String (encodedPassword);  }  

И затем использовал этот метод:

  string password = EncryptionSof ("admin123/* это ваш пароль Steam, я думаю * /", ответ);  

Следующий шаг — сделать запрос на получение данных для входа:

  var loginRequest = new RestRequest (loginWithKey  ); loginRequest.AddParameter («имя пользователя», «YourSteamLogin»); loginRequest.AddParameter («пароль», пароль); loginRequest.AddParameter («rsatimestamp», response.timestamp); loginRequest.AddParameter («запомнить_логин», false); //Captcha, если необходимо: loginRequest.AddParameter ("captchagid", 3086601225255895896); loginRequest. AddParameter ("captcha_text", "LHYJ2P");  

И, наконец, выполните его:

  var responseFinal = restClientTemporary.Execute (  loginRequest);  

В ответ я получил все, что мне нужно, в responseFinal.Content:

  {"success": true, "  requires_twofactor ": false," login_complete ": true," transfer_urls ": [" https: \/\/store.steampowered.com \/login \/transfer "," https: \/\/help  .steampowered.com \/login \/transfer "]," transfer_parameters ": {" steamid ":" 12344567898765432 "," token_secure ":" xDDDDDDDDD "," auth ":" LOOOOOL "," Remember_login ": false}  }  

Модель GetRsaResult выглядит так:

  открытый класс GetRsaResult {public bool success {get;  набор;  } публичная строка publickey_mod {получить;  набор;  } публичная строка publickey_exp {получить;  набор;  } публичная строка timestamp {получить;  набор;  } публичная строка token_gid {получить;  набор;  }}  

А, и я забыл об изменении 16-строчной на byte [], его метод, найденный в Stackoverflow:

   общедоступный статический байт [] HexToByte (шестнадцатеричная строка) {return Enumerable.Range (0, hex.Length) .Where (x => x% 2 == 0) .Select (x => Convert.ToByte (hex.Substring (x  , 2), 16)) .ToArray ();  }  

И вы должны запомнить одну вещь . Никогда не отправляйте в Steam пароль открытым текстом. Первый запрос /login/getrsakey/ предназначен только для получения ключей для шифрования пароля. Steam дает вам ключ для шифрования вашего пароля. Итак, вы будете использовать свой открытый текстовый пароль (в моем примере это admin123 ) в своей программе, чтобы зашифровать его с помощью ключей, полученных от Steam.

Во втором запросе /login/dologin/ вы должны отправить зашифрованный пароль (результат метода EncryptionSoF )

Оцените статью
clickpad.ru
Добавить комментарий