小编PLP*_*ers的帖子

对于正整数,写 i != 0 比写 i > 0 更快还是更慢?

想象一下我有一个程序需要检查变量是否i大于零。i总是积极的,所以说 thati > 0相当于说i != 0

这两个表达式之间是否存在性能差异?为什么?

我知道没有明显的性能差异,这更多的是一个哲学问题。

language-agnostic performance

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

未添加元数据中的 Google Cloud Compute 实例 SSH 密钥

我已经成功地将 SSH 密钥添加到新生成的实例有一段时间了,但突然之间它就不起作用了。他们的密钥不会添加到目标帐户(如果帐户不存在,则不会创建该帐户)。它仍然适用于我的一个项目,但它不适用于包含第一个代码的改编版本的另一个项目。两个代码的步骤如下:

  1. 从快照创建磁盘。
  2. 生成 RSA 密钥对。
  3. ssh-keys元数据中的属性设置为上一步生成的公钥,格式为 GCP 可以理解的 ( <username>:ssh-rsa <key> <username>)。
  4. 使用第一步中创建的磁盘和第三步中创建的元数据创建实例。

当我在 Google Cloud Console 上查看实例数据时,它在 SSH Keys 部分为正确的用户分配了正确的密钥。但是,当我通过 SSH 连接到实例时,密钥尚未添加到该authorized_keys用户的文件中。以防万一,我尝试在没有该用户的情况下重新创建快照,以便可以动态创建用户(应该可以),但在这种情况下,不会创建用户。

最后,Google Cloud 的行为就好像 SSH 密钥不在元数据中一样,但它确实存在。我遇到了这个答案,但似乎无法理解这一部分:

其直接后果是,仅当您没有指定自己的密钥(在创建实例时或之后)时,GCE 平台才会负责在实例 (...) 中放置/删除您的 ssh 密钥。如果这样做,GCE 平台会将 ssh 密钥管理视为手动,并且不会与元数据存储保持同步。

我没有看到我正在做的任何事情可能会触发它进入手动模式,但显然某处存在问题。


我只是尝试从较旧的快照运行相同的过程,并且它完美无缺。我会进一步调查,看看是什么原因造成的。

ssh metadata google-compute-engine google-cloud-platform

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

不同的服务器使用相同的参数生成不同的 JWT 令牌

我正在使用python-jose的 JWT 实现来生成用于身份验证的 JWT 令牌。

我们在 Kubernetes 上的 Docker 容器中运行我们的后端,有时,当我们有多个 pod 时,我们会为相同的声明、秘密和算法获得不同的令牌。我也有当这种情况发生在一个容器中对我的发展环境touch荷兰国际集团我的index.wsgi脚本。

吊舱 1:

>>> jwt.encode({'key': 'value'}, 'secret', algorithm='HS256')
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ2YWx1ZSJ9.FG-8UppwHaFp1LgRYQQeS6EDQF7_6-bMFegNucHjmWg'
Run Code Online (Sandbox Code Playgroud)

吊舱 2:

>>> jwt.encode({'key': 'value'}, 'secret', algorithm='HS256')
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkiOiJ2YWx1ZSJ9.JPIDicqvQ6GAh14yE2yZ3wnZQ0LiLNTTRDtJgLZcn98'
Run Code Online (Sandbox Code Playgroud)

我深入研究了代码,看看是什么导致了这种情况,但没有发现任何有罪的东西。简而言之,代码的作用如下:

  1. 做一个json.dumps算法头 ( {'typ': 'JWT', 'alg': 'HS256'}) 并将其编码为 Base64,删除 any=
  2. 执行一个json.dumps有效载荷 ( {'key': 'value'}) 并将其编码为 Base64,删除 any=
  3. 注册encoded_header.encoded_payload使用HMAC256与secret键和编码它为Base64,再删除任何=
  4. 将签名连接到前一个字符串,导致 encoded_header.encoded_payload.encoded_signature

在这一点上,我不知道是什么导致了这种情况。我怀疑 Python 的 HMAC 或 SHA256 …

python cryptography jwt docker kubernetes

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