从SHA1消息获取消息摘要

时间:2017-04-28 09:16:55

标签: openssl cryptography sha1

我正在查看此页面,了解如何在平台上验证SHA1实现:http://csrc.nist.gov/groups/STM/cavp/secure-hashing.html#sha-1

所以我打开文件并查看测试值:https://pastebin.com/SL4WaAtM它有数千行,但这是开始(面向BIT的实现)。

我专注于第一个值:

_http_outgoing.js:371 throw new Error('Can\'t set headers after they are sent.');

我的理解是,有一条消息,openssl会获得MD,但是我没有得到与上面相同的MD?

router.post('/send', function(req, res, next) {
var currentUser=req.body.currentUserAddress
var reciever= req.body.Addressedestinataire;
var amount = req.body.somme;
var data=[{"Spalte":amount}];
var s =JSON.stringify(data[0].Spalte);
var valueToken = JSON.parse(s);
mytoken.transfer.sendTransaction(currentUser,reciever,amount,{from :web3.eth.accounts[0],gas:5000000},function (error, result)
 {

    if(result)
          { 
                let event = mytoken.Transfer();

                 event.watch(function(err, response)
                {
                    if (err) {
                        console.log ("Error="+ err);
                             }
                    if (!err) {
                         let addressEvent= response.address;
                         let addressTo=response.args.to;
                         let addressFrom =response.args.from;
                         Transaction={addressFrom,addressTo,amount,date}
                         db.open(function(err, db) {

                         let collection = db.collection("Transaction");

                         collection.insertOne(Transaction, function(err, result1) {assert.equal(null, err);});
                         db.close();
                                 });
          res.setHeader('Content-Type', 'application/json');
          res.send(JSON.stringify({addressEvent,addressFrom,addressTo,amount}));

                    }
       });

         }
   else{
  console.log(error);  
       }

    });
 });

关于我做错什么的任何想法?。其他值也不匹配。

1 个答案:

答案 0 :(得分:3)

您错误地解释了数据。 Len是消息中的数量。通过在命令行上与openssl交互,您(据我所知)仅限于使用整个字节。

因此,例如Len = 2M = 40意味着您应该对0x40(= 01)的前两位进行哈希处理而不是整个字节({{1} })。在命令行中,我不认为可以使用长度不超过8位的比特流来提供openssl,因此您必须直接与ssl接口。库代码,如果你想这样做。

但是,您可以测试长度为8位的倍数的位模式:

01000000