小编Kar*_*lek的帖子

在Linux上使用mkdir作为基于文件的锁定是一种好习惯吗?

我想在linux上的perl程序中快速实现某种锁定,这可以在不同的进程之间共享.

所以我用作mkdir原子操作,1如果目录不存在0则返回,如果存在则返回.我在关键部分后立即删除目录.

现在,有人向我指出,这不是一般的好习惯(独立于语言).我认为这很好,但我想问你的意见.

编辑:为了显示一个例子,我的代码看起来像这样:

while (!mkdir "lock_dir") {wait some time}
critical section
rmdir "lock_dir"
Run Code Online (Sandbox Code Playgroud)

linux locking

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

如何将非ASCII字节的bytearray转换为python中的字符串?

如果它包含非ASCII字节,我不知道如何将Python的bitarray转换为字符串.例:

>>> string='\x9f'
>>> array=bytearray(string)
>>> array
bytearray(b'\x9f')
>>> array.decode()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9f in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我只想以某种方式从bytearray中获取字符串'\ x9f'.那可能吗?

python python-2.7

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

ES6,ES7(和更大),ES2015,阶段0,阶段1(和更大)之间的关系是什么?

我最近对关于"new-ish"JavaScript的文章中的以下术语感到困惑:

  • ES6
  • ES7(有时,虽然很少,ES8和更大)
  • ES2015(有时ES2016及更大)
  • 阶段0(和阶段1和更大)

似乎其中一些是其他的子集,特征,但我不清楚哪些子集.

javascript ecmascript-6 ecmascript-7

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

用户在GWT应用程序中注册/登录管理

我有一个带GWT前端的java应用程序,可以做一些事情.

现在我想实现用户及其注册,例如"忘记密码",登录和注销.

我的问题是 - 这是一个事情,几乎每个人都在他们的应用程序,但有很多事情要做错(哈希密码,有人伪造"忘记密码",等等),所以必须有一些通用的解决方案或图书馆.

我的意思是客户端的一些GUI小部件和服务器端的东西,它们将处理用户登录并保存他们的密码.

这样的事情存在吗?

java gwt

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

Java中具有快速性能的定点算法

我需要用Java精确地表示一些数字,并在小数点后固定小数点的数量;小数点后,我不在乎。(更具体地说-金钱和百分比。)

我现在使用Java自己的BigDecimal,但发现它确实很慢,并且开始在我的应用程序中显示。

因此,我想用“规则”整数和定点算术(长整数具有足够大的精度满足我的目的)来解决它。

现在,我想我不是第一个遇到这种问题的人,并且已经有一个针对该问题的库,该库已经实现了乘法/除法-但似乎并非如此。

现在,我很可能可以自己写(也许我会写),但是,实际上,我真的是第一个需要它的人吗?还没有图书馆吗?

java fixed-point

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

以特定顺序从文件中选择某些行的简便方法

我有一个文本文件,有很多行.我也有一定数量的线要打印出来,按一定的顺序排列.比方说,例如,"5,3,10,6".按此顺序.

这样做有一些简单和"规范"的方式吗?(使用"标准"Linux工具和bash)

当我尝试这个问题的答案时

Bash工具从文件中获取第n行

它总是按照文件中的顺序打印行.

linux bash

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

按范围切片

我想在Python中按范围切片,似乎不可能.

>>> a='0123456789'
>>> a[range(1,2)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: string indices must be integers, not list
Run Code Online (Sandbox Code Playgroud)

我为什么要这样做?我想在我的脚本的一部分中定义"切片",将其放在变量中,并在其他地方进行实际切片.像这样:

myrange=range(1,2)
a='0123456789'
a[myrange] #<-----raises TypeError
Run Code Online (Sandbox Code Playgroud)

是否有可能,如果没有,如何做正确和正确的事情?

python python-2.7

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

crypto.pbkdf2导出IV和密钥到crypto.createCipheriv的正确设置是什么?

在node.js的应用程序中,我使用crypto模块进行对称加密/解密.

我使用的是AES-256-CTR.我最初假设crypto.createCipher将"正常工作"和"手动"的细节.现在我正在阅读文档:

注意:createCipher使用OpenSSL函数EVP_BytesToKey派生密钥,摘要算法设置为MD5,一次迭代,无盐.缺少盐允许字典攻击,因为相同的密码始终创建相同的密钥.低迭代计数和非加密安全散列算法允许非常快速地测试密码.

根据OpenSSL建议使用pbkdf2而不是EVP_BytesToKey,建议您使用crypto.pbkdf2派生密钥并自行定义,然后使用createCipheriv()创建密码流.

好吧,我可以自己推导出IV和键.

但是,我不确定,这样做的正确和推荐方法是什么 - 我应该分别对不同的盐进行密钥推导吗?我应该进行一次密钥推导,然后将其减半吗?对于这个特定的用例,我应该使用盐吗?我应该随机生成盐并将其与数据一起保存吗?

encryption cryptography aes pbkdf2 node.js

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

如何使用 request.Context 而不是 CloseNotifier?

我在我的应用程序中使用 CloseNotifier,代码如下所示

func Handler(res http.ResonseWriter, req *http.Request) {
    notify := res.(CloseNotifier).CloseNotify()

    someLogic();
    select {
        case <-notify:
            someCleanup()
            return;
        default:
    }
    someOtherLogic();
}
Run Code Online (Sandbox Code Playgroud)

我注意到 CloseNotifier 现在已被弃用。从源代码

// Deprecated: the CloseNotifier interface predates Go's context package.
// New code should use Request.Context instead.
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在这里使用 Request.Context。

go

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

顶级 await 不适用于节点 14.13。-

我有节点 14.13.0,即使有--harmony-top-level-await,顶级 await 也不起作用。

$ cat i.js
const l = await Promise.new(r => r("foo"))
console.log(l)

$ node -v
v14.13.0

$ node --harmony-top-level-await i.js
/Users/karel/i.js:1
const l = await Promise.new(r => r("foo"))
          ^^^^^

SyntaxError: await is only valid in async function
    at wrapSafe (internal/modules/cjs/loader.js:1001:16)
    at Module._compile (internal/modules/cjs/loader.js:1049:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:791:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript node.js top-level-await

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