SHA512到UTF8到字节加密



一个问题:

包裹服务提供商要求以特定方式编码密码:

KEY->UTF8编码->SHA512

它们的KEY应该是字节形式,而不是字符串

目前我在Node.js中使用CryptoJS:

password = CryptoJS.SHA512(CryptoJS.enc.Utf8.parse(key))

password = CryptoJS.SHA512(CryptoJS.enc.Utf8.stringify(key))

不知道哪一个是正确的。

我需要将key转换为字节,如何做到这一点?

键是任意的字节序列,SHA-512适用于任意的字节顺序。但是,UTF-8不能对任意的字节序列进行编码。它只能对Unicode代码点进行编码。你所要求的是不可能的。(我建议准确地发布要求。你可能误解了。(

您需要其他编码,例如Base64或Hex。其中任何一个的输出都与UTF-8兼容(它们都输出UTF-8的子集(。

也就是说,这是一个非常奇怪的请求,因为您已经有了SHA-512的正确输入。将其转换为字符串,然后将该字符串转换回(可能不同(字节似乎是一个毫无意义的步骤,但如果你需要它,你需要像Base64或Hex这样的字节编码。

最新更新