【发布时间】:2019-10-23 13:41:53
【问题描述】:
我一直在研究 crypto-js 和 its encoder 与 WordArray 之间的转换。我查了the documentation,找不到任何关于WordArray可能是什么的解释。
据我所知,在 JavaScript 中甚至没有一个名为 WordArray 的 typed array,在该名称的任何类型化数组上也没有 DataView。
我知道WORD is in the Visual C++ parlance 是什么意思,但我不确定它在这里是什么意思。
奇怪,我在 crypto-js 上发现的所有线程(here、here 和 here)都在使用 WordArray 这个词,而没有人真正问它是什么。
真的有人能告诉我吗?是Uint16Array 吗?或者只是常规字节数组的另一个花哨的词(Uint8Array 或 untyped Array 的整数值)?
【问题讨论】:
-
第一次出现的字符串
WordArray(在您标记为“文档”的链接中)声明:“(哈希算法接受字符串或 CryptoJS.lib.WordArray 的实例。)* WordArray 对象表示 32 位字的数组。*"。您在下面链接的要点中重复了相同的内容。看起来很简单。 -
@mbojko 谢谢。我错过了。尽管如此,问题仍然存在。所以,如果我有字符串“he”,在 UTF-8 中它变成两个相邻的 16 位无符号整数。如果我将它们转换为
WordArray,这是否会导致一个数组只有一个 32 位元素,由字母“h”的 16 位作为HIWORD和字母“e”作为@ 987654343@? -
我刚刚为此发布了一个单独的问题。 stackoverflow.com/q/58525372/303685
-
顺便说一句,您在另一个问题中指定的是 UTF-16,或者更准确地说是没有字节顺序标记的 UTF-16BE。
-
不知道,一定是有一次碰到了 BOM :)
标签: javascript cryptography cryptojs