单词数组到字符串
Word Array to String
如何在Javascript或Jquery中执行此操作?
请分两步建议:
1.- 字数组到单字节数组。
2.- 字节数组到字符串。
也许这会有所帮助:
function hex2a(hex) {
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
你试图实现的目标已经在CryptoJS中实现了。从文档中:
可以通过显式调用 toString 方法并传递编码器将 WordArray 对象转换为其他格式。
var hash = CryptoJS.SHA256("Message");
alert(hash.toString(CryptoJS.enc.Base64));
alert(hash.toString(CryptoJS.enc.Hex));
老实说,我不知道你为什么要自己实现它......但是,如果您绝对需要在提到的 2 个步骤中"手动"执行此操作,您可以尝试这样的事情:
function wordToByteArray(wordArray) {
var byteArray = [], word, i, j;
for (i = 0; i < wordArray.length; ++i) {
word = wordArray[i];
for (j = 3; j >= 0; --j) {
byteArray.push((word >> 8 * j) & 0xFF);
}
}
return byteArray;
}
function byteArrayToString(byteArray) {
var str = "", i;
for (i = 0; i < byteArray.length; ++i) {
str += escape(String.fromCharCode(byteArray[i]));
}
return str;
}
var hash = CryptoJS.SHA256("Message");
var byteArray = wordToByteArray(hash.words);
alert(byteArrayToString(byteArray));
wordToByteArray
函数应该可以完美运行,但请注意,byteArrayToString
几乎在任何情况下都会产生奇怪的结果。我对编码了解不多,但 ASCII 只使用 7 位,因此在尝试编码整个字节时不会获得 ASCII 字符。所以我添加了escape
函数,至少能够显示你可能得到的所有奇怪的字符。;)
我建议您使用CryptoJS已经实现的函数,或者仅使用字节数组(不将其转换为字符串)进行分析。
相关文章:
- 将JSON转换为typescript中的字符串数组
- 在Javascript中将一个值和字符串数组转换为if语句
- 如何将正则表达式包含到字符串数组中
- JavaScript:将字符串数组转换为文本区域
- Knockout中的字符串数组
- 拆分字符串数组(JavaScript)后未定义
- 使用Javascript获取两个字符串之间的字符串数组
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 将一个字符串数组解析为一个新的数组javascript
- AngularJS - 从字符串数组中连续更改文本
- 使用字符串数组中的字符填充 HTML 表
- 如何在 Javascript 中将字符串数组列表插入到表行中
- 创建二维字符串数组
- 如何从字符串数组中获取子字符串数组
- 如何将字符串数组转换为简单数组
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 如何从字符串数组中获得8个随机唯一元素
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 函数,返回javascript中两个字符串数组的差值
- Javascript字符串数组转换为用逗号分隔的多个字符串