web-dev-qa-db-ja.com

nodejsでの16進数から文字列および文字列から16進数への変換

Nodejs 8を使用して、データを文字列から16進数に変換し、その後再び16進数から文字列に変換する必要があります。

16進数から文字列へのデコード中に問題が発生しました

変換するコードstring into hex

function stringToHex(str)
{
    const buf = Buffer.from(str, 'utf8');
    return buf.toString('hex');
}

変換するコードhex into string

function hexToString(str)
{
    const buf = new Buffer(str, 'hex');
    return buf.toString('utf8');
}

文字列dailyfile.Host

encodingの出力:3162316637526b62784a5a37697a45796c656d465643747a4a505a6f59774641534c75714733544b4446553d

decodingの出力:1b1f7RkbxJZ7izEylemFVCtzJPZoYwFASLuqG3TKDFU=

必須デコードの出力:dailyfile.Host

4
Hassaan

デコードにもBuffer.from()を使用する必要があります。繰り返されるコードの量を減らすために高次関数を書くことを検討してください:

const convert = (from, to) => str => Buffer.from(str, from).toString(to)
const utf8ToHex = convert('utf8', 'hex')
const hexToUtf8 = convert('hex', 'utf8')

hexToUtf8(utf8ToHex('dailyfile.Host')) === 'dailyfile.Host'
6
Patrick Roberts