Interesante. No puedo reproducir esto con Javascript. Porque tu último método es una conversión binaria a hexadecimal, pero el resultado de la decodificación base62 no es una representación binaria, según entiendo.
Desde una perspectiva de JS, encontré útil lo siguiente:
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;
}
Desafortunadamente, ni los métodos bin2hex ni dec2hex ayudan, cuando uso tus cadenas de entrada.
Creé un codesandbox para ese problema si alguien está interesado en jugar con él. El valor final es 1 para mi cadena de entrada, lo cual es incorrecto ;(.
Gracias.