29th / personnel-v2

Personnel management system version 2 (legacy)
4 stars 7 forks source link

Show alternative forms of Steam ID #52

Open wilson29thid opened 9 years ago

wilson29thid commented 9 years ago

Need to show (1) Steam ID, (2) ROID/UID, (3) GUID/BattlEye

Resources:

wilson29thid commented 9 years ago

Implemented in javascript on codepen: http://codepen.io/wilson29thid/full/MYJZjJ/

var steamID64Identifier = BigNumber('76561197960265728');

function roid2steamid(roid) {
  var v = steamID64Identifier,
      w = BigNumber(roid),
      y = w.mod(2).toPrecision(1) === '1' ? 1 : 0,
      z = parseInt(w.minus(y).minus(v).div(2).toPrecision(17), 10);
  return 'STEAM_0:' + y + ':' + z;
}

function roid2uid(roid) {
  var v = steamID64Identifier,
      w = BigNumber(roid),
      y = w.mod(2).toPrecision(1) === '1' ? 1 : 0,
      z = parseInt(w.minus(y).minus(v), 10),
      hex = ('00000000' + (z + y).toString(16)).slice(-8);
  return '0x01100001' + hex;
}

function roid2guid(roid) {
  var w = BigNumber(roid),
      parts = [0x42,0x45,0,0,0,0,0,0,0,0],
      i;

  for(i = 2; i < 10; i++) {
    parts[i] = parseInt(w.mod(256), 10);
    w = w.div(256);
  }

  var wordArray = CryptoJS.lib.WordArray.create(new Uint8Array(parts)),
      hash = CryptoJS.MD5(wordArray);
  return hash.toString();
}

/**
 * 76561198173249134
 * 0x011000010CB1DE6E
 * STEAM_0:0:106491703
 */
var roid = '76561198028501999',
    steamid = roid2steamid(roid),
    uid = roid2uid(roid),
    guid = roid2guid(roid);

function convert() {
  var roid = $('#input').val();
  $('#roid').text(roid);
  $('#steamid').text(roid2steamid(roid));
  $('#uid').text(roid2uid(roid));
  $('#guid').text(roid2guid(roid));
}

$('form').submit(function(e) {
  convert();
  e.preventDefault();
});
convert();