Bash:将文件从十六进制字符编码转换为utf8

时间:2018-03-18 08:50:47

标签: node.js bash encoding utf-8 hex

我有一个需要解码的文件内容。

原始数据采用hex格式并加密,并作为此过程的一部分存储在const crypto = require('crypto'); const algorithm = 'AES-256-CBC'; const encrypt = async (value, password, iv) { const cipher = crypto.createCipheriv(algorithm, password, iv); let encrypted = cipher.update(value, 'utf8', 'hex') encrypted += cipher.final('hex'); return encrypted; } 格式的文件中,每个unicode字符2个十六进制字符(基数为16的数字字节)。 / p> 使用类似于以下的node.js代码生成此数据:

linux

我想要一些utf8 bash脚本(不是node.js代码),它本质上会将源文件转换为iconv编码文件。

这样做有什么简单吗?

我一直在寻找像{{1}}这样的工具,但很难找到答案。

一旦解码的文件内容,我就可以使用openssl进行解密。

1 个答案:

答案 0 :(得分:0)

目前还不清楚所谓的“源文件”。如果您的意思是十六进制编码的加密数据无法转换为UTF-8。

加密数据是8位二进制,看起来是随机位/字节。任意二进制数据在UTF-8中无法表示,并非所有二进制值都是合法的UTF-8字符。

相反,您需要做的是将十六进制转换为二进制并将该二进制文件传递给解密方法。