В игре есть следующие типы идентификаторов:
1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
3. Battleye GUID игрока.
Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
Так вот, как же получить Steam64ID:
1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на:
2. Ввести ссылку на ваш стим-профиль
3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
Как получить BIS ID:
1. Открыть любой Phyton v2.7 -конвертер в интернете, например:
2. Ввести в него следующий код:
# Hello World program in Python
from hashlib import sha256
from base64 import b64encode
def construct_bi_uid(steam_id):
hashed = sha256()
hashed.update(str(steam_id))
return b64encode(hashed.digest())
print construct_bi_uid(76514925976798981)
3. заменить 76514925976798981 на ваш Steam64ID
4. Отправить код в исполнение, нажав Execute.
5. Получить результат
<?php
/**
* This is how you get user id (bohemia id) like you see in .ADM files from steam id.
*/
$steam_id = "76514925976798981";
$user_id = base64url_encode(hash('sha256', $steam_id, true));
function base64url_encode($data)
{
$b64 = base64_encode($data);
if ($b64 === false) {
return false;
}
$url = strtr($b64, '+/', '-_');
return $url;
}
echo $user_id;
[Альтернатива] Метод для javascript - node.js:
var crypto = require('crypto');
var body = "76514925976798981";
var hash = crypto.createHash("sha256");
var hash_result = hash.update(body, 'utf8').digest('base64');
console.log(hash_result);
Как получить Battleye GUID:
1. Открыть любой ресурс с готовой формой конвертирования, например:
Код для Phyton:
# Thanks to gunlinux
import md5
steamid=76514925955798981
temp = ""
for i in range(8):
temp += chr((steamid & 0xFF))
steamid >>= 8
m = md5.new("BE"+temp)
print m.hexdigest()
Код для PHP:
var crypto = require('crypto');
var body = "76514925955798981";
var hash = crypto.createHash("sha256");
var hash_result = hash.update(body, 'utf8').digest('base64');
console.log(hash_result);
2. Вставить в поле ввода UID (Steam64ID) ваш Steam64ID
3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне. Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.