Tag: 校验和

如何使用ExpressJS / Connect / Crypto获取(大)文件的校验和?

我需要生成一个大文件(.ISO),file upload校验和。 我正在使用ExpressJS / Connect通过POST(多部分)处理上传请求, //express setup app.js app.use('/upload',express.bodyParser({ defer : true, //enable progress event keepExtensions : true, limit : app.locals.fileLimit, uploadDir : path.join( __dirname, '..', 'tmp'), hash : true //this doesnt appear to do anything })); //express route routes.js app.post("/upload", function(req, res){ var fs = require('fs'); var format = require('util').format; req.form.hash = true; //this […]

NodeJS检测修改的文件

应用程序加载用户的文本文件,每个用户都可以更改。 在应用程序的开始,我想检查是否有任何文件从上次更改。 我认为最有效的方法是计算每个文件的校验和并保存到一个json文件。 在应用程序的开始,我会检查每个文件的校验和,并将其与从json文件中的数据进行比较是否有任何更优化/有效的方式来做到这一点? 或者如何计算文件校验和?

单字符签名scheme(最低安全性)

注意:我最初把这个发布到信息安全 ,但是我开始认为它可能更有意义,因为它确实是确定我应该怎样处理请求,而不是保护信息。 情况 系统A : 我有一个向用户提供请求的系统A 此服务器执行某些操作,然后将用户redirect到系统B 在这个redirect过程中,服务器A可以给用户一个32个字符的字母数字string信息传递给系统B 需要31个字符的信息,但是可以使用一个校验和。 这个string可以或多或less的被认为是一个请求ID。 系统B : 当系统B收到用户的请求时,可以通过parsing31个字符的string,查询数据库和与系统A通话来validation请求(和类IDstring)是否有效。该系统可以用绝对确定请求是有效的并且没有被篡改,但是这在计算上是非常昂贵的。 攻击者: 这个系统很可能会看到许多欺骗ID的尝试。 这是由后来的检查过滤,所以我不担心一个字符完全签署的ID, 但我想避免花费更多的资源来处理这些请求比需要。 我需要的 我正在寻找一个校验和/签名scheme,可以用单个字符给我一个很好的想法,请求是否应该继续进行validation过程,或者应该立即丢弃为无效。 如果一条消息被丢弃,我需要100%确定它是无效的,但是如果我保留无效的消息也没问题。 我相信一个理想的解决scheme将意味着1/62无效请求被保留(攻击者必须猜测检查字符),但是作为放弃一半无效请求的最小解决scheme就足够了。 我所试过的 我已经看过使用Luhnalgorithm(与信用卡相同的algorithm),但我希望能够使用密钥来生成angular色,以使攻击者更难以伪造校验和。 作为创build签名scheme的第一次尝试,我用31个字节的键逐个对31个字节的ID进行异或,将所得到的字节相加,转换为十进制并将数字相加,直到小于62,然后映射它到集合[a-bA-Z0-9]的字符(下面的伪代码)。 问题是,虽然我敢肯定,这不会丢弃任何有效的请求,我不知道如何确定这将通过无效的ID或如果密钥可以检索使用最终值的频率。 Set alphabet to (byte[]) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; Set keystring to "aLaklj14sdLK87kxcvalskj7asfrq01"; Create empty byte[] key; FOR each letter in keystring Push (index of letter in alphabet) to key; Create empty byte[] step1; […]