草庐IT

二进制差异数

全部标签

javascript - Node.js:crypto.pbkdf2 十六进制密码

我目前使用以下设置来注册新用户://createsanewuserapp.post('/users',function(req,res){//createnewuservaruser=newUser();//assignpostuser.username=req.body.username;user.email=req.body.email;crypto.randomBytes(32,function(err,buf){if(err)throwerr;user.salt=buf.toString('hex');crypto.pbkdf2(req.body.password,user.s

javascript - 没有编码为 UTF-8 或 base64 的 websocket 二进制数据

我正在尝试使用二进制模式的websockets将二进制数据从用Python编写的服务器传输到客户端浏览器(运行javascript)。我已经以文本模式实现了这种通信,但现在我希望通过以二进制模式进行通信来提高性能。我见过的所有示例(例如this,如果有人深入了解使用Tornado的matplotlib/webagg的源代码)都声称它们使用的是二进制模式,但实际上它们似乎对原始二进制数据进行了编码在传输之前的某个时刻转换为UTF-8(或base64)。在我看来,这样做并不是真正的二进制传输,因为它会增加30%到50%的开销。所以我的问题是,是否必须将二进制数据编码为utf-8或base6

javascript - 解析十六进制 float

我有整数,例如,4060。如何从中获取HEXfloat(\x34\xC8\x7D\x45)?JS没有float类型,不知道怎么转换。谢谢。 最佳答案 如果你想要一个十六进制的字符串,试试这个:>varb=newBuffer(4);>b.writeFloatLE(4060,0)>b.toString('hex')'00c07d45'另一种方式(使用您的输入):>Buffer('34C87D45','hex').readFloatLE(0)4060.5126953125更新:newBuffer(size)已被弃用,但它很容易被Buffe

javascript - 十六进制格式可以用于 JSON 文件吗?如果是这样,如何?

以下对象是纯Javascript中的有效对象。但是,如果将相同的内容添加到JSON文件,则该文件不会通过验证。这是为什么?varmessage={"senderID":[0x01],"receiverID":[0xFF],"commandCode":[0x00,0x05],"payload":[0xFF]} 最佳答案 JSON不支持十六进制数,但在JSON5中支持。json5.org 关于javascript-十六进制格式可以用于JSON文件吗?如果是这样,如何?,我们在StackOve

javascript - 如何在 javascript (Cscript.exe) 中读取二进制文件?

我想我无法使用Scripting.FileSystemObject类读取二进制文件。我可以用ADODB.Stream做吗?还有什么?我想得到一个字节数组。谢谢。 最佳答案 它也可以将文件作为二进制文件读取,然后使用VBScript将返回的对象(变体数组)转换为Javascript字节数组。为此,您需要使用.wsf文件将VBScript和Javascript混合在一起。您仍然需要ADODB.Stream。PublicFunctionVbBinaryToArray(Binary)DimiReDimbyteArray(LenB(Binar

javascript - 如何使用 FileReader 读取二进制文件以便在 CryptoJS 中使用 SHA-256 对其进行哈希处理?

如何使用javascript将UTF-8字符串转换为Latin1编码字符串?这是我正在尝试做的事情:我得到一个文件,通过读取数组缓冲区将其拆分成block然后,我将数组缓冲区解析为字符串并使用以下代码将其传递给cryptoJS以进行哈希计算:cryptosha256=CryptoJS.algo.SHA256.create();cryptosha256.update(text);hash=cryptosha256.finalize();对于文本文件,这一切都适用。使用散列非文本文件(图像/.wmv文件)的代码时出现问题。我在另一个博客中看到CryptoJS作者要求使用Latin1格式而不

返回八进制值的 Javascript eval 函数

当我尝试将“eval”函数作为eval("020*05+05")时,它返回85而不是105。有人能解释一下为什么eval函数会这样吗?还建议任何解决这个问题的方法。 最佳答案 以零开头的数字常量(如“020”)被解释为八进制。对于C、C++、Java、Javascript以及大多数与C具有模糊外观关系的其他语言都是如此。如果出于某种原因你真的、真的需要使用“eval()”,并且你有这些奇怪的字符串,数字常量上有伪造的前导零,你可以尝试这样的事情:varanswer=eval(weirdString.replace(/\b0(\d+)

javascript - 如何在 JavaScript 中从二进制数据创建文件对象

我可能在这里遗漏了一些简单的东西,但是我如何在给定从AJAX请求接收到的二进制数据的情况下在JavaScript中创建一个文件对象?$.ajax({url:"http://example.com/image.jpg",success:function(data){//ConvertbinarydatatoFileobject}}); 最佳答案 我终于明白了。为了避免跨站点脚本问题,我在我的服务器上创建了一个代理端点。然后我可以将图像URL传递到我的服务器,然后服务器对远程文件执行GET请求,将响应转换为Base64,并将其发送回浏览

javascript - 从十六进制值中检测相似的颜色

有谁知道获取两个十六进制颜色值并返回某种索引以说明颜色有多相似的方法?例如,两种黄色阴影可能会返回更高的指数,即它们比灰色和黄色更相似?(我使用的是javascript,但我猜像这样的东西将是一个独立于语言的公式/算法) 最佳答案 可以从以下算法开始:constyellow1="FFFF99";constyellow2="FFFF00";constblue="0000FF";functionhexColorDelta(hex1,hex2){//getred/green/blueintvaluesofhex1varr1=parseIn

Javascript 十进制转二进制 - 64 位

十进制-805306368的二进制是:1111111111111111111111111111111111010000000000000000000000000000但是,在Javascript中我得到了following:varstr=parseInt(-805306368).toString(2);document.write(str);-110000000000000000000000000000任何人都可以解释如何从这个十进制解析64位二进制字符串吗? 最佳答案 JavaScript不使用补码表示,它使用字符串前面的连字符-