Interessante. Não consigo reproduzir isso com Javascript. Porque seu último método é uma conversão binária para hexadecimal, mas o resultado da decodificação base62 não é uma representação binária, pelo que entendi.
Do ponto de vista do JS, achei o seguinte útil:
https://www.npmjs.com/package/aybabtu
function fromBase62(s) {
var digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = 0;
for (var i = 0; i < s.length; i++) {
var p = digits.indexOf(s[i]);
if (p < 0) {
return NaN;
}
result += p * Math.pow(digits.length, s.length - i - 1);
}
return result;
}
Infelizmente, nem os métodos bin2hex nem dec2hex ajudam quando uso suas strings de entrada.
Criei um codesandbox para esse problema, caso alguém esteja interessado em brincar com ele. O valor final é 1 para minha string de entrada, o que está errado ;(
Obrigado