Хотя это и не ответ на реальный вопрос, в этом случае, возможно, полезно также знать, как изменить процесс на обратный:
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
}
Например, использование hex2bin
в b637eb9146e84cb79f6d981ac9463de1
возвращает ¶7ëFèL·mÉF=á
, а затем передача этого значения в bin2hex
возвращает b637eb9146e84cb79f6d981ac9463de1
.
Также может быть полезно создать прототип этих функций для объекта 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())