我正在尝试将此代码移植到node.JS
void init(int a, int b, int internalRounds)
{
memset(nkey, 0x00, 256);
sprintf((char*)nkey, "%.5d_XXXXX%.5d_MASIN_%.5d", (a+10), (b+10), (a+b));
setup(nkey, 256);
ucPrev = getRandom();
}
我想知道如何正确地做到这一点。
我目前有:
var Crypt = function(a, b, internalRounds) {
var nkey = new Buffer(256)
nkey.fill(0x00)
nkey = util.format('%.5d_XXXXX%.5d_MASIN_%.5d', (a+10), (b+10), (a+b))
this.setup(nkey, 256)
this.ucPrev = this.getRandom()
}
我想了解我是否正确地做到了
答案 0 :(得分:1)
util.format
不支持精度(即%.5f
)。此外,分配给nkey
只是用util.format
返回的字符串替换缓冲区。您希望将write
字符串改为缓冲区。
以下是解决这些问题的方法:
var key = new Buffer(256);
key.fill(0);
key.write(
(a + 10).toFixed(5) +
'_XXXXX' +
(b + 10).toFixed(5) +
'_MASIN_' +
(a + b).toFixed(5)
);