首页 > 解决方案 > 以字节为单位转换密钥以与 openssl 一起使用 - 'bad magic number'

问题描述

我正在尝试解密受 AES 保护的 XML。我有用于加密它的密钥,但正在努力将其应用于解密过程。这是练习的一部分,并且相应地提供了密钥。

使用的密钥(字节)是:

[0]:137

[1]:67

[2]:248

[3]:114

[4]:168

[5]:126

[6]:229

[7]:255

[8]:147

[9]:249

[10]:177

[11]:191

[12]:131

[13]:184

[14]:242

[15]:194

[16]:93

[17]:98

[18]:209

[19]:245

[20]:211

[21]:122

[22]:198

[23]:89

[24]:15

[25]:215

[26]:137

[27]:237

[28]:193

[29]:202

[30]:126

[31]:50

我正在努力做到这一点。使用 node 将上述内容转换为可与 openSSL 一起使用的密码时,出现错误:bad magic number.

将上述内容转换为 base64 字符串的节点代码:

const bytes = [137, 67, 248, 114, 168, 126, 229, 255, 147, 249, 177, 191, 131, 184, 242, 194, 93, 98, 209, 245, 211, 122, 198, 89, 15, 215, 137, 237, 193, 202, 126, 50];

const base64Key = new Buffer.from(bytes).toString('base64'); // iUP4cqh+5f+T+bG/g7jywl1i0fXTesZZD9eJ7cHKfjI=

我用来尝试解密文件的 openssl 命令(使用上面的输出):

openssl enc -aes-256-cbc -base64 -pass pass:iUP4cqh+5f+T+bG/g7jywl1i0fXTesZZD9eKfjI= -d -p -in secretmessage.txt -out notsosecret.txt // bad magic number

我不确定我哪里出错了,但是这bad magic number让我相信我没有正确阅读提供的密钥。问题:

  1. 我关于密钥被误读的假设是否正确?
  2. 密钥是否正确但使用不正确?
  3. “坏幻数”是否完全意味着其他东西?

提前致谢!

标签: encryptionencodingcharacter-encodingopenssl

解决方案


推荐阅读