小编Mad*_*zeR的帖子

验证 DKIM 签名的正确方法(b= 部分)

我正在尝试开发我的家庭电子邮件服务器(在服务器端使用 NodeJS,但这并不重要,因为我试图找出原理)。我使用此文档来指导自己完成 DKIM 签名验证例程,但它需要一些复杂的步骤,而且我无法弄清楚我的错误在哪里。对于电子邮件示例,我使用了从 Mail.ru 服务器发送的一封电子邮件。它应该是完全有效的。有它的标题:

DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2;
    h=References:In-Reply-To:Content-Type:Message-ID:Reply-To:Date:MIME-Version:Subject:To:From; bh=gCWDSCJf58CbaR+wjAV9dydu9JTKkvo1o+0zkj8bNr0=;
    b=pheltY+k/mio2x4CFQV8cXZxNiR7oSTkIsWTOZa1CGpEyK8KVSHY07OWSdZ1aFVtuaV32PbI0mNY0yliuqIbYTsnreFUYFM/iVR5PU74QHAe8yp46ydAYRbzLQu8dy+AkFhPtEdb8CAgoZKXgPLc888/Q6MsVAh6iH1L3SZj87Y=;
Received: by f427.i.mail.ru with local (envelope-from <[my name]@mail.ru>)
    id 1dbP18-0003I9-L7
    for madbr@[domain]; Sat, 29 Jul 2017 13:30:42 +0300
Received: by e.mail.ru with HTTP;
    Sat, 29 Jul 2017 13:30:42 +0300
From: =?UTF-8?B?0KHQtdGA0LPQtdC5?= <[my name]@mail.ru>
To: madbr@[domain]
Subject: =?UTF-8?B?UmU6IA==?=
MIME-Version: 1.0
X-Mailer: Mail.Ru Mailer 1.0
Date: Sat, 29 Jul 2017 13:30:42 +0300
Reply-To: =?UTF-8?B?0KHQtdGA0LPQtdC5?= <[my name]@mail.ru>
X-Priority: 3 (Normal)
Message-ID: <1501324242.448202607@f427.i.mail.ru>
Content-Type: multipart/mixed;
    boundary="----uEhsLqzDWmmGeA9EZ3XNsqSIGjlgVTmA-NI9QMhpqxNHWLEDT-1501324242" …
Run Code Online (Sandbox Code Playgroud)

validation rsa signature dkim

6
推荐指数
1
解决办法
3124
查看次数

节点。Child_process.spawn。处理进程的输入提示

我目前正在处理我的 git 网络界面。通过 child_process.spawn 访问 git 本身。一切都很好,虽然有简单的“命令 - > 响应”机制,但我不明白我应该用命令提示符做什么(git fetch例如要求输入密码)。假设有一些事件被触发,但我不知道该听什么。我所看到的只是git_user@myserver's password: _node.js 进程本身正在运行的命令行中的“ ”。

将此请求重定向到我的 Web 应用程序会很棒,但它甚至可能吗?

我试图监听messagedatapipeendclosereadable在所有的流(标准输出,标准输入,标准错误),但在密码提示没有一个火灾。

这是我的工作解决方案(没有提到实验):

var out="";
var err="";

var proc=spawn(exe,cmd);
proc.on("exit",function(exitCode){

});
proc.stdout.on("data",function(data){
    out+=data;
});
proc.stderr.on("data",function(data){
    err+=data;
});
proc.on("close",function(code){
    if(!code)func(out);
    else return errHandler(err);
});
Run Code Online (Sandbox Code Playgroud)

你能帮我做调查吗?

更新

当前情况:在我的 GIT Web 界面上有一个按钮“FETCH”(例如,简单的“git fetch”)。当我按下它时,会生成 http 请求并将其发送到由http.createServer(callback).listen(8080). callback函数接收我的请求并创建child_process.spawn('git',['-C','path/to/local/repo','fetch']). 一直以来,我只在 Web 界面上看到加载屏幕,但是如果我切换到运行节点脚本的命令行窗口,我将看到密码提示。现在让我们假设我无法将窗口切换到控制台,因为我是远程工作的。

我想在我的网络界面上看到密码提示。例如,如果 child_processchild.stdin在提示用户输入时会在(或其他地方)发出一些事件,这将很容易实现。在这种情况下,我会将字符串“来吧,伙计,git 想知道您的密码!在此处输入:_______”返回 Web …

git stream child-process node.js

5
推荐指数
1
解决办法
3835
查看次数

猛击。逐行输出到另一个过程

我有一个简单的 GIT 脚本: cp --parents $(git diff --name-only $1 $2) $3

git diff ...- 获取提交之间修改的文件列表($1 和 $2)。

cp --parents ...- 将它们复制到所需的目录($3)。

但唯一的问题存在:目录名称中存在空格。在这种情况下,脚本无法正常工作。显然,每一行git diff输出都应该用引号引起来,但是如何呢?

或者还有其他解决方案吗?还找不到。

git bash

3
推荐指数
1
解决办法
432
查看次数

标签 统计

git ×2

bash ×1

child-process ×1

dkim ×1

node.js ×1

rsa ×1

signature ×1

stream ×1

validation ×1