Aunque no es una respuesta a la pregunta real, tal vez sea útil en este caso también saber cómo revertir el proceso:
function bin2hex (bin)
{
var i = 0, l = bin.length, chr, hex = ''
for (i; i < l; ++i)
{
chr = bin.charCodeAt(i).toString(16)
hex += chr.length < 2 ? '0' + chr : chr
}
return hex
}
A modo de ejemplo, el uso de hex2bin
en b637eb9146e84cb79f6d981ac9463de1
vuelve ¶7ëFèL·mÉF=á
, y luego pasando esto a bin2hex
devuelve b637eb9146e84cb79f6d981ac9463de1
.
También podría ser útil para crear prototipos de estas funciones al objeto String
:
String.prototype.hex2bin = function()
{
var i = 0, l = this.length - 1, bytes = []
for (i; i < l; i += 2)
{
bytes.push(parseInt(this.substr(i, 2), 16))
}
return String.fromCharCode.apply(String, bytes)
}
String.prototype.bin2hex = function()
{
var i = 0, l = this.length, chr, hex = ''
for (i; i < l; ++i)
{
chr = this.charCodeAt(i).toString(16)
hex += chr.length < 2 ? '0' + chr : chr
}
return hex
}
alert('b637eb9146e84cb79f6d981ac9463de1'.hex2bin().bin2hex())
@MartyIX: Aquí hay una [función Javascript licenciada por BSD] (http://freebeer.smithii.com/www/_source.php?file=%2Fhome%2Fross%2Fpublic_html%2Ffreebeer%2Fwww%2Flib%2Fbin2hex. js) que hace lo que quieres. –
Andres Rifrio: ¡Gracias! –