CryptoJS将单词数组分成两部分
CryptoJS splitting word array in two
我不太擅长字节转换,所以我想确保我没有做任何危险的事情。
我只是使用CryptoJS pbkdf2生成一个512位密钥。
然后我想将此密钥分成两半以生成两个256位密钥。
generateKeyPair = function(input, salt) {
var output = CryptoJS.PBKDF2(input, salt, { keySize: 512/32 });
var firstHalf = _.clone(output);
var secondHalf = _.clone(output);
var sigBytes = output.sigBytes/2;
firstHalf.words = output.words.slice(0, 10);
secondHalf.words = output.words.slice(10, 20);
firstHalf.sigBytes = sigBytes;
secondHalf.sigBytes = sigBytes;
return [firstHalf.toString(), secondHalf.toString()];
}
我得到generateKeyPair("hello", "world")
的输出是:
("798"ef2617367d80daeacf8b457af7903eebf6d1f384c9fed762b14186036e912,"0 a9782aa773bdafcd9cd259e95381ac9ab26d026fe6a3375a93dc6b2a69e7ac3"
这里的下划线使用lodash。这看起来对吗?
你的解决方案似乎不错。我最近解决了这个问题,只是把十六进制字符串分成两半。我的例子以WordArray格式获取一个键,并以WordArray格式返回每一半。
function splitKey(key) {
const keyString = key.toString()
const firstHalf = keyString.slice(0,keyString.length/2)
const secondHalf = keyString.slice(keyString.length/2,keyString.length)
return [CryptoJS.enc.Hex.parse(firstHalf), CryptoJS.enc.Hex.parse(secondHalf)]
}
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 如何在Javascript中解析AJAX数组的特定部分
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 用null填充稀疏数组(类似于压缩两个数组)
- 如何在javascript中合并两个对象数组
- 使用部分字符串在数组中循环
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 效率:整数数组的一个子集中两个项之间的最大差值
- 使用Javascript获取两个字符串之间的字符串数组
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 如何将数组拆分为左右两个数组
- 什么'获取数组的已定义部分的最快方法是什么?JS
- 从Javascript中的两个子数组中获取随机结果
- 如果存在匹配,JavaScript对两个数组(一个嵌套数组,一个扁平数组)的部分匹配应该返回true