小编Hri*_*tov的帖子

在实践中忽略SHA碰撞的可能性是否安全?

假设我们有十亿个独特的图像,每个图像一兆字节.我们计算每个文件内容的SHA-256哈希值.碰撞的可能性取决于:

  • 文件数量
  • 单个文件的大小

假设它为零,我们可以在多大程度上忽略这种可能性?

hash sha

197
推荐指数
3
解决办法
7万
查看次数

如何使Qt Creator以与Qt库中的函数相同的方式显示我的函数的弹出文档?

当您将鼠标指针放在任何Qt函数/类上时,它会显示一个弹出窗口,其中简要描述了它的作用,取自函数/类上方注释中的文档.

对于我的函数/类,我有doxygen格式的文档:

/**
  Returns foo
*/
QString getFoo() {
  return "foo";
}
Run Code Online (Sandbox Code Playgroud)

当使用此函数时,我想在鼠标指针位于函数名称上时查看与我的文档相同类型的弹出窗口.

用Qt Creator可以做到吗?

qt qt-creator

19
推荐指数
1
解决办法
5606
查看次数

如何使用python请求执行限时响应下载?

当用python下载大文件时,我想为时间限制设置一个时间限制,不仅适用于连接过程,还适用于下载.

我正在尝试使用以下python代码:

import requests

r = requests.get('http://ipv4.download.thinkbroadband.com/1GB.zip', timeout = 0.5, prefetch = False)

print r.headers['content-length']

print len(r.raw.read())
Run Code Online (Sandbox Code Playgroud)

这不起作用(下载没有时间限制),正如文档中正确指出的那样:https://requests.readthedocs.org/en/latest/user/quickstart/#timeouts

如果有可能,这将是伟大的:

r.raw.read(timeout = 10)
Run Code Online (Sandbox Code Playgroud)

问题是,如何为下载设置时间限制?

python urllib3 python-requests

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

Tesseract(OCR引擎)是否可以重入?

我在四核处理器上使用Tesseract进行OCR.为了更好的速度,我想一次读4个单词,使用4个线程.同时从多个线程调用Tesseract是否安全?

注意:每个线程将处理不同的非共享映像.

注意:由于速度的原因,用锁保护是不行的.

ocr concurrency tesseract reentrancy

7
推荐指数
2
解决办法
3914
查看次数

如何在java中更快地计算sha256?

我发现在java中计算sha256很慢.例如,它比python慢​​.我写了两个简单的基准测试来计算1GB零的sha256.在这两种情况下,结果都是相同且正确的,但是python时间是5653ms,java时间是8623ms(慢了53%).结果每次都相似,这对我来说是一个重要的区别.

如何更快地在java中进行计算?

基准:

Java的:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class BenchmarkSha256 {

  public static void main(String... args) throws NoSuchAlgorithmException {
    int size = 1024 * 1024;
    byte[] bytes = new byte[size];
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    long startTime = System.nanoTime();
    for (int i = 0; i < 1024; i++)
      md.update(bytes, 0, size);
    long endTime = System.nanoTime();
    System.out.println(String.format("%1$064x", new java.math.BigInteger(1, md.digest())));
    System.out.println(String.format("%d ms", (endTime - startTime) / 1000000));
  }

}
Run Code Online (Sandbox Code Playgroud)

蟒蛇:

#!/usr/bin/env python

import hashlib
import time

size = 1024 * 1024 …
Run Code Online (Sandbox Code Playgroud)

java optimization sha sha256

7
推荐指数
2
解决办法
4908
查看次数

模板与旋转匹配

我需要在360度进行模板匹配.

大多数模板是80*120,图像是640*480灰度(8位).

对于非旋转我使用的是opencv cvmatchtemplate,它工作得非常好.

我尝试在各种角度旋转模板并进行cvmatchtemplate,它正在工作但耗费了太多时间.

对于正常模板匹配,它需要12毫秒,而对于360度,需要小于50毫秒.

algorithm opencv image-processing computer-vision

5
推荐指数
2
解决办法
2623
查看次数

如何在scala中编写带有readline支持的交互式shell?

我想在scala中编写交互式shell,支持readline(Ctrl-l,箭头键,行编辑,历史记录等).

我知道如何在python中做到这一点:

# enable support for Ctrl-l, arrow keys, line editing, history, etc.
import readline

finished = False
while not finished:
  try:
    line = raw_input('> ')
    if line:
      if line == 'q':
        finished = True
      else:
        print line
  except KeyboardInterrupt:
    print 'Ctrl-c'; finished = True
  except EOFError:
    print 'Ctrl-d'; finished = True
Run Code Online (Sandbox Code Playgroud)

我想写一个简单的scala程序,具有完全相同的行为.到目前为止,我最接近的解决方案是以下scala:

// used to support Ctrl-l, arrow keys, line editing, history, etc.
import scala.tools.jline

val consoleReader = new jline.console.ConsoleReader()
var finished = false
while (!finished) { …
Run Code Online (Sandbox Code Playgroud)

shell scala interactive readline

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

如何使用离线和在线数据库创建java桌面应用程序,定期同步?

我想创建 java 桌面应用程序,它将数据离线存储在数据库中(不仅仅是一些配置文件)。当用户离线时,应用程序应该可以正常工作。当用户在线时,离线数据库应该能够与在线 master 同步。

任何想法可以使用哪些技术来实现这一目标?

java database

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

码头集装箱何时停止?

如果在命令行或CMD上指定了简单的运行命令,则程序退出时容器将停止.但是,如果:

  • 该程序产生新的进程,然后蚂蚁退出?

  • 'exec'在命令行中使用,然后第一个命令退出?

你还可以指向文档吗?

谢谢!

docker

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

如何在Java中快速初始化BufferedImage?

我有以下Java代码:

public static BufferedImage createImage(byte[] data, int width, int height)
{
  BufferedImage res = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

  byte[] rdata = ((DataBufferByte)res.getRaster().getDataBuffer()).getData();

  for (int y = 0; y < height; y++) {
    int yi = y * width;
    for (int x = 0; x < width; x++) {
      rdata[yi] = data[yi];
      yi++;
    }
  }

  return res;
}
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?

在C++中,我会使用memcpy,但在Java中?

或者也许可以直接用传递的数据初始化结果图像?

java optimization bufferedimage

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