小编chm*_*ike的帖子

在ECDSA中使用Curve25519

我目前正在研究使用curve25519进行签名.原始发行版C实现(以及第二个C实现).

伯恩斯坦建议使用ECDSA,但我找不到任何代码.

encryption signature elliptic-curve

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

C++中的动态绑定

我正在实现一个像服务器一样的CORBA.每个类都有远程可调用方法和一个带有两个可能输入的调度方法,一个标识方法的字符串或一个整数,它将是表中方法的索引.字符串到相应整数的映射将由映射实现.

调用者将在第一次调用时发送字符串并使用响应返回整数,以便它只需在后续调用时发送整数.这只是一个小优化.可以根据需要由服务器对象动态分配整数.服务器类可以从具有重写的虚拟方法的另一个类派生.

什么是定义方法绑定和调度方法的简单通用方法?

编辑:方法具有相同的签名(没有重载).这些方法没有参数并返回一个布尔值.它们可以是静态的,虚拟的或非静态的,覆盖基类方法与否.绑定必须正确处理方法覆盖.

该字符串是类层次结构绑定.如果我们有由字符串"A.foo"标识的A :: foo(),并且类B继承A并覆盖方法A :: foo(),它仍将被标识为"A.foo",但是如果服务器是A对象,调度程序将调用A :: foo,如果它是B对象,则调用B :: foo.

编辑(6 apr):换句话说,我需要使用动态调度方法实现我自己的虚方法表(vftable),使用字符串键来标识要调用的方法.vftable应该在同一个类的对象之间共享,并且与多态性的行为一样(继承的方法覆盖).

编辑(28 apr):看下面我自己的答案和最后的编辑.

c++ methods binding

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

C代码获取相对于UTC的本地时间偏移(以分钟为单位)?

我没有找到一种简单的方法来获得当地时间和UTC时间之间的分钟数.

起初我打算使用,tzset()但它不提供夏令时.根据手册页,如果日光节省有效,它只是一个不等于零的整数.虽然通常是一个小时,但在某些国家可能需要半小时.

我宁愿避免计算当前UTC返回的时间差gmtime()localtime().

更通用的解决方案将为我提供指定位置和正time_t值的信息,或至少在本地.

编辑1:用例是为https://github.com/chmike/timez获取正确的本地时间偏移量.顺便说一句,如果您认为libc函数操作时间还可以,请阅读https://rachelbythebay.com/w/2013/03/17/time/.

编辑2:迄今为止我用来计算UTC时间偏移的最佳和最简单的解决方案是

// Bogus: assumes DST is always one hour
tzset();
int offset = (int)(-timezone / 60 + (daylight ? 60 : 0));
Run Code Online (Sandbox Code Playgroud)

问题是确定实际的节省时间.

编辑3:受到@trenki答案的启发,我提出了以下解决方案.这是一个黑客,因为它mktime()可以将输出gmtime()视为本地时间.当DST更改在UTC时间和本地时间之间的时间跨度时,结果是不准确的.

#include <stdio.h>
#include <time.h>

int main()
{
    time_t rawtime = time(NULL);
    struct tm *ptm = gmtime(&rawtime);
    // Request that mktime() looksup dst in timezone database
    ptm->tm_isdst = -1;                
    time_t gmt …
Run Code Online (Sandbox Code Playgroud)

c time utc offset

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

设置包含环境变量值的路径

我们正在尝试在Linux上使用带有Qt 的MITK库.

不幸的是,MITK没有安装功能,它还依赖于ITK和VTK.所以我们最终得到分散在许多目录中的头文件.

我们想在环境变量中的include路径中指定要添加的目录列表,如下所示:INCPATH + = $ MITK_INCLUDE_PATH.但这似乎不起作用.

我们怎么能实现这个目标?有没有更好的办法?

qt4 qt-creator mitk

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

以C/C++获取文件大小的便携方式

我需要确定文件的字节大小.

编码语言是C++,代码应该适用于Linux,Windows和任何其他操作系统.这意味着使用标准的C或C++函数/类.

这种微不足道的需求显然不是一个微不足道的解决方案.

c c++ portability filesize platform-independent

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

浏览器中的url在使用jQuery mobile调用Flask中的重定向(url_for('xxx'))后未更新

我有一个非常简单的python程序,使用如下所示的Flask.它通过弹出和注销来处理登录.问题是浏览器中的URL不会被重定向(url_for())调用更新.

@app.route('/')
def index():
    if not 'username' in session:
        # contains a button showing a login popup form with action set to '/login'
        return render_template('welcome.html')
    else:
        # contains a logout button with a href to '/logout'
        return render_template('webapp.html') 


@app.route('/login', methods=['POST'])
def login():
    session['username'] = request.form['username']
    return redirect(url_for('index'))


@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('index'))
Run Code Online (Sandbox Code Playgroud)

访问"/"时,会显示欢迎页面.当我单击按钮时,将显示登录弹出窗口,其表单操作将重定向到"/ login".这样可以调用并执行login()函数.重定向也是如此,但浏览器不会更新显示的网址.

因此,webapp页面显示为/ logon url.当我单击重新加载时,我收到一个错误,因为它尝试重新加载/登录,而它应该重新加载'/'重定向.

/ logout也是如此.当显示webapp页面并单击注销按钮时,将加载/ logout页面,该页面执行logout()函数并重定向到index.但是网址要么退出了.

如果我然后重新加载页面,它会成功,因为/ logout接受GET方法然后将url更新为/它本来应该是第一个位置.

我的印象是它是一个jQuery移动问题,但无法找出问题所在.从python和Flask的角度来看,它匹配我能找到的所有登录示例.

python flask jquery-mobile flask-login

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

Django 1.3中的静态模板块标记出错

我正在尝试在我的一个模板中使用静态模板块标记,但是我得到了一个我不明白的例外.

这是模板代码:

<img src="{{STATIC_URL}}closed.png" alt="Closed message" />
<br/>


{% load static %}
<img src="{% get_static_prefix %}closed.png" %}" alt="Closed message"/>
<br/>

<img src="{% static "closed.png" %}" alt="Closed message"/>
Run Code Online (Sandbox Code Playgroud)

如果我注释掉最后一个,则第一个图像显示指令有效.当最后一个取消注释时,我得到一个例外:

无效的块标记:'static'

该代码基于 django文档部分.

django django-templates

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

在python中防止SQL注入

我在Python中有一些代码在sqlite DB中设置char(80)值.

该字符串是通过文本输入字段直接从用户获取的,并使用JSON结构中的POST方法发送回服务器.

在服务器端,我当前将字符串传递给调用SQL UPDATE操作的方法.

它有效,但我知道它根本不安全.

我希望客户端无论如何都是不安全的,因此任何保护都应放在服务器端.我可以做些什么来再次保护UPDATE操作SQL注入?

我正在寻找的是一个"引用"文本以便它不会混淆SQL解析器的函数.我希望这样的功能存在,但找不到它.

编辑: 这是我当前设置char字段名称标签的代码:

def setLabel( self, userId, refId, label ):
    self._db.cursor().execute( """
        UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( label, userId, refId) )
    self._db.commit()
Run Code Online (Sandbox Code Playgroud)

sql security python-2.7

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

升级Go后重新编译所有包?

升级Go之后,如何确保使用新版本重新编译我的所有包$GOPATH/pkg和二进制文件$GOPATH/bin

我希望任何升级错误都报告为警告,而不是导致操作中止的错误.

go

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

Python中的输出文件重定向

我正在编写一个备份脚本,我打算每晚在cronjob中执行.

该脚本将sys.stdout和sys.stderr设置为输出文件,以记录发生的情况.

要进行备份,请使用以下代码

cmd = 'rsync -av --del --stats --filter "- .thumbnails/" ' + \
    '--filter "- *~" --filter "- *.iso" --filter "- lost+found/" ' + \
    '--filter "- .cache/" --filter "- tmp/" --filter "- *.mp3" ' + \
    '--filter "- *.log" ' + srcDir + ' ' + dstDir

print "Executing '"+cmd+"' ..."
try:
    sys.stdout.flush()
    sys.stderr.flush()
    retcode = subprocess.call( cmd, stdin = sys.stdin, stdout = sys.stdout,
        stderr=sys.stderr, shell=False )
    if retcode < 0:
        print >>sys.stderr, "Command was terminated by …
Run Code Online (Sandbox Code Playgroud)

python file

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