小编pts*_*pts的帖子

如何从ssh-agent中提取私钥?

ssh-add -l 显示我有3个RSA密钥添加到我的SSH代理.

ssh-add -L 显示那些公钥.

如何获取私钥,以便将其保存到文件中?或者这是不可能的?它是如何工作的呢?

是否可以要求ssh-agent使用私钥进行操作?我怎么能让它为我加密/解密一个号码?

我必须为此编写代码(编程语言并不重要),但我更喜欢使用现有工具或库.

encryption key-management ssh-agent

14
推荐指数
1
解决办法
8112
查看次数

Java:如何中止从System.in读取的线程

我有一个Java线程:

class MyThread extends Thread {
  @Override
  public void run() {
    BufferedReader stdin =
        new BufferedReader(new InputStreamReader(System.in));
    String msg;
    try {
      while ((msg = stdin.readLine()) != null) {
        System.out.println("Got: " + msg);
      }
      System.out.println("Aborted.");
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

}

在另一个线程中,如何stdin.readline()在此线程中中止调用,以便打印此线程Aborted.?我试过了System.in.close(),但这没有任何区别,stdin.readline()仍然是阻塞.

我对没有的解决方案感兴趣

  • 忙等待(因为这会烧掉100%的CPU);
  • 睡觉(因为那时程序没有立即响应System.in).

java stdio

14
推荐指数
2
解决办法
9422
查看次数

如何检测传入的SSL(https)握手(SSL有线格式)?

我正在编写一个接受传入TCP连接的服务器.假设服务器已接受TCP连接,并且已从客户端接收到16个(左右)字节.知道那16个字节服务器如何检测客户端是否想要发起SSL握手?

我做了一个实验,它表明在我的Linux系统上通过SSL连接到localhost(127.0.0.1或AF_UNIX)会使客户端发送以下握手(hexdump),然后是16个看似随机的字节:

8064010301004b0000001000003900003800003500001600001300000a07
00c000003300003200002f03008000000500000401008000001500001200
0009060040000014000011000008000006040080000003020080
Run Code Online (Sandbox Code Playgroud)

服务器应如何探测前几个字节,以便能够确定客户端是否正在发送SSL握手?对于所有有效的SSL握手,探测器必须返回true,并且对于非SSL握手的客户端发送的消息,它必须返回false,概率很高.不允许使用任何库(如OpenSSL)进行探测.探针必须是一个简单的代码(如C或Python中的几十行).

ssl protocols handshake

13
推荐指数
2
解决办法
7562
查看次数

带有Python语法高亮的HTML演示幻灯片

我想为我的演示文稿创建幻灯片.我的演示文稿将包含以下内容:幻灯片标题,项目符号点,代码片段(以等宽字体显示),一些代码行以粗体显示,Python代码片段(带语法高亮显示).

我需要一个可以用HTML(或HTML5)生成这样的幻灯片的应用程序或工具,因此当我在Web浏览器中打开生成的HTML,并将Web浏览器置于全屏模式时,它将启动幻灯片放映.我更喜欢将我的演示文稿编写为.txt带有一些标记的文件,然后该工具应该生成HTML.

我知道Google Docs的演示功能,但不支持Python语法高亮显示.

我也知道LaTeX和Beamer,但这会生成PDF而不是HTML(不是大问题),并且没有内置的Python语法高亮.

我更喜欢使用香草谷歌Chrome或Mozilla Firefox投影我的演示文稿.我不想在投影机上安装任何演示软件(例如bruce).

还有其他选择吗?

html python syntax-highlighting presentation

12
推荐指数
1
解决办法
4217
查看次数

JavaScript中最快的模幂运算

我的问题是(g^x) mod p在JavaScript中快速计算,其中^是取幂,mod是模运算.所有输入都是非负整数,x大约有256位,p是2048位的素数,g最多可能有2048位.

我发现可以在JavaScript中执行此操作的大多数软件似乎都使用JavaScript BigInt库(http://www.leemon.com/crypto/BigInt.html).在我的慢速浏览器(使用SpiderMonkey的Firefox 3.0)上使用此库执行此类大小的单次取幂大约需要9秒.我正在寻找一种至少快10倍的解决方案.使用square-and-multiply(通过平方取幂,http://en.wikipedia.org/wiki/Exponentiation_by_squaring)的明显想法对于2048位数来说太慢了:它需要多达4096次乘法.

升级浏览器不是一种选择.使用其他编程语言不是一种选择.将数字发送到Web服务不是一种选择.

是否有更快的替代方案实施?

更新:按照下面的答案中提到的文章http://www.ccrwest.org/gordon/fast.pdf的建议做一些额外的准备工作(即预先计算几百个权力),可以做到2048-位模幂运算仅使用最多354次模乘.(传统的square-and-multiply方法要慢得多:它使用最多4096次模乘.)这样做可以在Firefox 3.0中将模幂运算速度提高6倍,在Google Chrome中提高4倍.我们没有获得4096/354的全速加速的原因是BigInt的模块化指数算法已经比正方形和乘法更快,因为它使用蒙哥马利减少(http://en.wikipedia.org/wiki/Montgomery_reduction) .

更新:从BigInt的代码开始,似乎值得做两个级别的手动优化(和内联)Karatsuba乘法(http://en.wikipedia.org/wiki/Karatsuba_algorithm),然后才恢复到基础-32768 O( n ^ 2)在BigInt中实现的乘法.对于2048位整数,这会使乘法乘以2.25倍.不幸的是,模运算不会变得更快.

更新:使用http://www.lirmm.fr/arith18/papers/hasenplaugh-FastModularReduction.pdf和Karatsuba乘法和预计算功能中定义的修改后的Barrett约简(在http://www.ccrwest.org/gordon/中定义)fast.pdf),我可以在Firefox 3.0中将单次乘法所需的时间从73秒减少到12.3秒.这似乎是我能做的最好的,但它仍然太慢了.

更新:Flash Player中的ActionScript 2(AS2)解释器不值得使用,因为它似乎比Firefox 3.0中的JavaScript解释器慢:对于Flash Player 9,它似乎慢了4.2倍,对于Flash Player 10,似乎慢了2.35倍.有人知道ActionScript2和ActionScript3(AS3)之间的速度差异是否有数字运行?

更新:Flash Player 9中的ActionScript 3(AS3)解释器不值得使用,因为它与JavaScript int Firefox 3.0的速度几乎相同.

更新:在Flash Player 10的ActionScript 3(AS3)解释可高达6.5倍,比在Firefox 3.0的JavaScript解释器速度更快,如果int是用来代替Number,并Vector.<int>用来代替Array.对于2048位大整数乘法,至少它快2.41倍.因此,在AS3中进行模幂运算可能是值得的,如果可用的话,在Flash Player 10中执行它.请注意,这仍然比谷歌Chrome的JavaScript解释器V8慢.有关各种编程语言和JavaScript实现的速度比较,请参见http://ptspts.blogspot.com/2009/10/javascript-and-actionscript-performance.html.

更新:有一个非常快速的Java解决方案,如果安装了Java插件,可以从浏览器的JavaScript调用.以下解决方案比使用BigInt的纯JavaScript实现快约310倍. …

javascript primes discrete-mathematics modulo exponentiation

11
推荐指数
1
解决办法
6129
查看次数

Phusion Passenger如何重用线程和进程?

我正在建立一个使用Phusion Passenger运行多个Ruby on Rails Web应用程序的Apache2 Web服务器.我知道Passenger会生成处理请求的Ruby进程.我有以下问题:

  • 如果必须同时处理多个请求,Passenger会产生多个进程还是多个(Ruby)线程?如何配置它以便始终生成单线程进程?
  • 如果我有两个Rails应用程序,想象一下应用程序A的请求进入进程1,然后稍后请求应用程序B到达.流程1是否也可以处理此请求?何时以及如何实现?换句话说,是否允许一个进程处理多个Rails应用程序的请求?
  • 我在多个URL和多个虚拟主机(例如http://和https://)中导出了相同的Rails应用程序.同一个进程是否能够为不同的虚拟主机提供服务?(答案似乎是肯定的,我在回答虚拟主机A的请求时设置了一个全局变量,并且我能够在虚拟主机B中检索该值.)

ruby apache ruby-on-rails apache2 passenger

10
推荐指数
2
解决办法
4882
查看次数

如何在使用dlopen加载的共享库中制作gdb打印符号?

我想使用GDB调试在Linux 2.6上运行的进程.attach PID(其中,PID是进程ID), ,,print main 和工作(即,他们发现各个符号).但是不起作用,从文件使用的进程加载的函数在哪里.这是我得到的:print sinprint gzopenprint dlopenprint myfoomyfoo.sodlopen

(gdb) print main
$3 = {int (int, char **)} 0x805ba90 <main>
(gdb) print sin
$4 = {<text variable, no debug info>} 0xb7701230 <sin>
(gdb) print gzopen
$5 = {<text variable, no debug info>} 0xb720df50 <gzopen>
(gdb) print dlopen
$6 = {<text variable, no debug info>} 0xb77248e0 <__dlopen_nocheck>
(gdb) print myfoo
No symbol "myfoo" in current context.
Run Code Online (Sandbox Code Playgroud)

如何找到GDB myfoo

该功能 …

linux gdb shared-libraries

10
推荐指数
2
解决办法
1万
查看次数

如何在node.js中使用HTTP keep-alive发送连续请求?

我正在使用node.js 0.6.18,以下代码使node.js关闭每两个请求之间的TCP连接(strace在Linux上验证).如何让node.js为多个HTTP请求重用相同的TCP连接(即保持活动状态)?请注意,网络服务器能够保持活力,它可以与其他客户端一起使用.Web服务器返回分块的HTTP响应.

var http = require('http');
var cookie = 'FOO=bar';
function work() {
  var options = {
      host: '127.0.0.1',
      port: 3333,
      path: '/',
      method: 'GET',
      headers: {Cookie: cookie},
  };
  process.stderr.write('.')
  var req = http.request(options, function(res) {
    if (res.statusCode != 200) {
      console.log('STATUS: ' + res.statusCode);
      console.log('HEADERS: ' + JSON.stringify(res.headers));
      process.exit(1)
    }
    res.setEncoding('utf8');
    res.on('data', function (chunk) {});
    res.on('end', function () { work(); });
  });
  req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
    process.exit(1);
  });
  req.end();
}
work()
Run Code Online (Sandbox Code Playgroud)

client http keep-alive node.js

10
推荐指数
2
解决办法
1万
查看次数

为什么没有Sec-WebSocket-Key1的WebSockets不安全?

旧的和取代的WebSocket规范草案75没有指定HTTP请求标头Sec-WebSocket-Key1和Sec-WebSocket-Key2.为什么最新草案包含这些内容,以及增强安全性方面的内容?

security html5 websocket

9
推荐指数
1
解决办法
1704
查看次数

什么是特定提交哈希的树形哈希?

我需要一个shell命令行,它将树哈希对应于特定的提交哈希.我知道git cat-file commit $COMMITID | grep ^tree可以做到,但我必须过滤掉它的输出.有没有只打印哈希的命令?

git

9
推荐指数
2
解决办法
916
查看次数