我一直在使用 Node 中的加密库来进行公钥交换。到目前为止,我刚刚.getDiffieHellman('modp5')为每个新连接生成一个新的公钥/私钥。此方法非常适合计算用于 AES 加密的秘密。
但是,我希望能够将私钥保存到文件中,然后在下次执行时加载它。似乎执行此操作的方法是.getPrivateKey()then.setPrivateKey()但.setPrivateKey()在crypto.createDiffieHellman由 生成的类上使用.getDiffieHellman('modp5')不起作用。这实际上在文档中有说明:
返回的对象模仿上面 crypto.createDiffieHellman() 创建的对象的接口,但不允许更改密钥(例如使用 diffieHellman.setPublicKey() )。
知道这一点,如果我使用以下代码生成了私钥:
var crypto = require('crypto');
var Key = crypto.getDiffieHellman('modp5');
Key.generateKeys();
var PrvKey = Key.getPrivateKey();
save_to_file(PrvKey);
Run Code Online (Sandbox Code Playgroud)
我如何在以后加载相同的私钥?
var crypto = require('crypto');
var PrvKey = load_from_file();
var Key = crypto.createDiffieHellman(prime, [encoding]);
Key.setPrivateKey( PrvKey )
Run Code Online (Sandbox Code Playgroud)
我查看了加密文档中指定的RFC2412,发现第 5 组的素数列出为:
2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 圆周率] + 741804}
241031242692103258855207602219756607485695054850245994265411 694195810883168261222889009385826134161467322714147790401219 6 50364895705058263194273070680500922306273474534107340669624 601458936165977404102716924945320037872943417032584377865919 8143 …
javascript cryptography public-key-encryption node.js node-crypto
我试图根据此stackoverflow问题上发布的示例将node.js模块分叉为子进程.fork本身可以工作,但我遇到的问题是该节点正在尝试添加.on('data')和填充.on('exit')之前fork('./DaemonSerial.js'tChild
var fork = require('child_process').fork;
// Start Serial Daemon/s
var tChild = fork('./DaemonSerial.js', [], {
stdio: 'pipe'
});
tChild.stdin.on('data', function(data) {
// output from the child process
console.log("./DaemonSerial.js >>> " + data)
});
EdgeMaster.Children[tChild.pid] = tChild;
tChild.on('exit', function(d) {
console.log("./DaemonSerial.js >>> "+ tChild.pid + ' Exited:'+ d);
delete EdgeMaster.Children[tChild.pid]
});
Run Code Online (Sandbox Code Playgroud)
我也在其他地方遇到过这个问题,并且我确定应该有一种强制执行某种do THIS then THAT功能的方法,即使函数本身没有回调也是如此.child_process.fork(modulePath, [args], [options])在nodejs.org/api/child_process.html上没有列出回调.
想法?
编辑:我写了一个新的脚本,forktest.js以排除我的脚本的其他部分可能导致问题的任何可能性.forktest.js完全如下:
var fork = require('child_process').fork; …Run Code Online (Sandbox Code Playgroud) 我在此博客文章中找到了以下Airflow DAG :
from airflow import DAG
from datetime import datetime, timedelta
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
from airflow.operators.dummy_operator import DummyOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime.utcnow(),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(
'kubernetes_sample', default_args=default_args, schedule_interval=timedelta(minutes=10))
start = DummyOperator(task_id='run_this_first', dag=dag)
passing = KubernetesPodOperator(namespace='default',
image="Python:3.6",
cmds=["Python","-c"],
arguments=["print('hello world')"],
labels={"foo": "bar"},
name="passing-test",
task_id="passing-task",
get_logs=True,
dag=dag
)
failing = KubernetesPodOperator(namespace='default',
image="ubuntu:1604",
cmds=["Python","-c"],
arguments=["print('hello world')"],
labels={"foo": "bar"},
name="fail",
task_id="failing-task",
get_logs=True,
dag=dag
) …Run Code Online (Sandbox Code Playgroud) 我曾试图安装PYAHK通过pip install pyahk以及python setup.py install
# pip --version
pip 9.0.1 from c:\python36\lib\site-packages (python 3.6)
# python --version
Python 3.6.1
Run Code Online (Sandbox Code Playgroud)
这两个错误都带有以下消息:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\ca\AppData\Local\Temp\pip-build-as2lv10i\pyahk\setup.py", line 3, in <module>
import ahk
File "C:\Users\ca\AppData\Local\Temp\pip-build-as2lv10i\pyahk\ahk\__init__.py", line 7, in <module>
from script import Function, Script
ModuleNotFoundError: No module named 'script'
Run Code Online (Sandbox Code Playgroud)
但是......有问题的模块.\ahk\script.py确实存在
PYAHK
? .hgignore
? .hgtags
? .hg_archival.txt
? LICENSE.txt
? pylintrc
? README.rst
? runtests.py
? setup.py …Run Code Online (Sandbox Code Playgroud) 在回顾了Kineticjs文档之后,我提出了以下建议
Kinetic.Container (Node) - 容器用于包含节点或其他容器
Kinetic.Stage (容器(节点)) - 一个阶段用于包含多个层add(Layer)
add(Node)add(Node)Kinetic.FastLayer (容器(节点)) - 用于不需要用户交互的图层(更新感谢markE)
Kinetic.Collection (Array) - 此类与Kinetic.Container#get一起使用
什么是BaseLayer'FastLayer'用于确切?在文档中FastLayer有完全相同的描述,Layer并且BaseLayer只是说它是一个构造函数.
在其中一个提交注释中,推断出FastLayer不必删除hit canvas...我猜这是因为它没有一个因此使它更快?
关于这两个类的作用以及如何有效地使用它们的一些说明将不胜感激.
编辑:更新问题以反映markE的输入,任何人都有洞察力BaseLayer?
javascript ×3
node.js ×2
airflow ×1
cryptography ×1
kineticjs ×1
kubernetes ×1
node-crypto ×1
pip ×1
python ×1